mirror of
https://github.com/outbackdingo/patroni.git
synced 2026-08-25 14:53:37 +00:00
Inherit CaseInsensitiveDict from urllib3 HTTPHeaderDict (#1302)
It might look like a hack, but the API is stable enough and didn't change in the past 3+ years.
This commit is contained in:
@@ -6,8 +6,8 @@ import socket
|
||||
import stat
|
||||
import time
|
||||
|
||||
from collections import MutableMapping, OrderedDict
|
||||
from six.moves.urllib_parse import urlparse, parse_qsl, unquote
|
||||
from urllib3.response import HTTPHeaderDict
|
||||
|
||||
from ..dcs import slot_name_from_member_name, RemoteMember
|
||||
from ..utils import compare_values, parse_bool, parse_int, split_host_port, uri
|
||||
@@ -250,29 +250,19 @@ class ConfigWriter(object):
|
||||
self.writeline("{0} = '{1}'".format(param, self.escape(value)))
|
||||
|
||||
|
||||
class CaseInsensitiveDict(MutableMapping):
|
||||
class CaseInsensitiveDict(HTTPHeaderDict):
|
||||
|
||||
def __init__(self, data):
|
||||
self._store = OrderedDict()
|
||||
self.update(data)
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
self._store[key.lower()] = (key, value)
|
||||
def add(self, key, val):
|
||||
self[key] = val
|
||||
|
||||
def __getitem__(self, key):
|
||||
return self._store[key.lower()][1]
|
||||
return self._container[key.lower()][1]
|
||||
|
||||
def __delitem__(self, key):
|
||||
del self._store[key.lower()]
|
||||
|
||||
def __iter__(self):
|
||||
return (casedkey for casedkey, mappedvalue in self._store.values())
|
||||
|
||||
def __len__(self):
|
||||
return len(self._store)
|
||||
def __repr__(self):
|
||||
return str(dict(self.items()))
|
||||
|
||||
def copy(self):
|
||||
return CaseInsensitiveDict(self._store.values())
|
||||
return CaseInsensitiveDict(self._container.values())
|
||||
|
||||
|
||||
class ConfigHandler(object):
|
||||
|
||||
@@ -622,7 +622,7 @@ class TestPostgresql(BaseTestPostgresql):
|
||||
config['synchronous_mode_strict'] = True
|
||||
self.p.config.get_server_parameters(config)
|
||||
self.p.config.set_synchronous_standby('foo')
|
||||
self.p.config.get_server_parameters(config)
|
||||
self.assertTrue(str(self.p.config.get_server_parameters(config)).startswith('{'))
|
||||
|
||||
@patch('time.sleep', Mock())
|
||||
def test__wait_for_connection_close(self):
|
||||
|
||||
Reference in New Issue
Block a user