diff options
Diffstat (limited to 'src/etcd/tests/unit/test_client.py')
-rw-r--r-- | src/etcd/tests/unit/test_client.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/etcd/tests/unit/test_client.py b/src/etcd/tests/unit/test_client.py index 2e09d7c..e5d1099 100644 --- a/src/etcd/tests/unit/test_client.py +++ b/src/etcd/tests/unit/test_client.py @@ -1,5 +1,12 @@ import unittest import etcd +import dns.name +import dns.rdtypes.IN.SRV +import dns.resolver +try: + import mock +except ImportError: + from unittest import mock class TestClient(unittest.TestCase): @@ -97,3 +104,21 @@ class TestClient(unittest.TestCase): allow_reconnect=True, use_proxies=True, ) + + def test_discover(self): + """Tests discovery.""" + answers = [] + for i in range(1,3): + r = mock.create_autospec(dns.rdtypes.IN.SRV.SRV) + r.port = 2379 + r.target = dns.name.from_unicode(u'etcd{}.example.com'.format(i)) + answers.append(r) + dns.resolver.query = mock.create_autospec(dns.resolver.query, return_value=answers) + self.machines = etcd.Client.machines + etcd.Client.machines = mock.create_autospec(etcd.Client.machines, return_value=[u'https://etcd2.example.com:2379']) + c = etcd.Client(srv_domain="example.com", allow_reconnect=True, protocol="https") + etcd.Client.machines = self.machines + self.assertEquals(c.host, u'etcd1.example.com') + self.assertEquals(c.port, 2379) + self.assertEquals(c._machines_cache, + [u'https://etcd2.example.com:2379']) |