Merge branch 'master' of github.com:CyberDem0n/governor

This commit is contained in:
Alexander Kukushkin
2015-06-24 16:42:08 +02:00
2 changed files with 14 additions and 3 deletions
+8 -2
View File
@@ -121,11 +121,17 @@ class Client:
response, status_code = self._get('/members')
if status_code != 200:
self._base_uri = None
raise EtcdError('Got response with code=%s from %s' % (status_code, self._base_uri))
members_cache = []
for member in response if load_from_srv else response['members']:
members_cache.extend([m + '/' + self.API_VERSION for m in member['clientURLs']])
try:
for member in response if load_from_srv else response['members']:
members_cache.extend([m + '/' + self.API_VERSION for m in member['clientURLs']])
except:
self._base_uri = None
raise EtcdError('Got invalid response from %s: %s' % (self._base_uri, response))
self._members_cache = list(set(members_cache))
random.shuffle(self._members_cache)
if load_from_srv:
+6 -1
View File
@@ -37,7 +37,10 @@ def requests_get(url, **kwargs):
if url.startswith('http://error'):
response.status_code = 404
elif url.endswith('/members'):
response.content = members
if url.startswith('http://error'):
response.content = '[{}]'
else:
response.content = members
elif url.endswith('/bad_response'):
response.content = '{'
elif url.startswith('http://local'):
@@ -138,6 +141,8 @@ class TestClient(unittest.TestCase):
def test_load_members(self):
self.client._base_uri = self.client._base_uri.replace('localhost', 'error_code')
self.assertRaises(EtcdError, self.client.load_members)
self.client._base_uri = 'http://error_code:2380'
self.assertRaises(EtcdError, self.client.load_members)
self.client._base_uri = None
self.client._config = {}
self.assertRaises(Exception, self.client.load_members)