summaryrefslogtreecommitdiff
path: root/src/etcd/tests/unit/test_client.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/etcd/tests/unit/test_client.py')
-rw-r--r--src/etcd/tests/unit/test_client.py25
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'])