summaryrefslogtreecommitdiff
path: root/tests/test_resolver.py
diff options
context:
space:
mode:
authorBob Halley <halley@play-bow.org>2020-07-01 07:43:13 -0700
committerBob Halley <halley@play-bow.org>2020-07-01 07:43:13 -0700
commit7461bbefbee32d77c470816cd020a082d07a13b4 (patch)
tree3a03b60ee63f861ca968b95883000edefa115847 /tests/test_resolver.py
parentc9620a298f917f127d46dedeac4908ade66c2c19 (diff)
downloaddnspython-7461bbefbee32d77c470816cd020a082d07a13b4.tar.gz
increase resolver coverage
Diffstat (limited to 'tests/test_resolver.py')
-rw-r--r--tests/test_resolver.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/test_resolver.py b/tests/test_resolver.py
index 373ecb9..2a9c63d 100644
--- a/tests/test_resolver.py
+++ b/tests/test_resolver.py
@@ -64,6 +64,34 @@ search search1 search2
options rotate timeout:1 edns0 ndots:2
"""
+bad_timeout_1 = """
+nameserver 10.0.0.1
+nameserver 10.0.0.2
+options rotate timeout
+"""
+
+bad_timeout_2 = """
+nameserver 10.0.0.1
+nameserver 10.0.0.2
+options rotate timeout:bogus
+"""
+
+bad_ndots_1 = """
+nameserver 10.0.0.1
+nameserver 10.0.0.2
+options rotate ndots
+"""
+
+bad_ndots_2 = """
+nameserver 10.0.0.1
+nameserver 10.0.0.2
+options rotate ndots:bogus
+"""
+
+no_nameservers = """
+options rotate
+"""
+
message_text = """id 1234
opcode QUERY
rcode NOERROR
@@ -139,6 +167,36 @@ class BaseResolverTests(unittest.TestCase):
self.assertEqual(r.ndots, 2)
self.assertEqual(r.edns, 0)
+ def testReadOptionsBadTimeouts(self):
+ f = StringIO(bad_timeout_1)
+ r = dns.resolver.Resolver(configure=False)
+ r.read_resolv_conf(f)
+ # timeout should still be default
+ self.assertEqual(r.timeout, 2.0)
+ f = StringIO(bad_timeout_2)
+ r = dns.resolver.Resolver(configure=False)
+ r.read_resolv_conf(f)
+ # timeout should still be default
+ self.assertEqual(r.timeout, 2.0)
+
+ def testReadOptionsBadNdots(self):
+ f = StringIO(bad_ndots_1)
+ r = dns.resolver.Resolver(configure=False)
+ r.read_resolv_conf(f)
+ # ndots should still be default
+ self.assertEqual(r.ndots, None)
+ f = StringIO(bad_ndots_2)
+ r = dns.resolver.Resolver(configure=False)
+ r.read_resolv_conf(f)
+ # ndots should still be default
+ self.assertEqual(r.ndots, None)
+
+ def testReadNoNameservers(self):
+ f = StringIO(no_nameservers)
+ r = dns.resolver.Resolver(configure=False)
+ with self.assertRaises(dns.resolver.NoResolverConfiguration):
+ r.read_resolv_conf(f)
+
def testCacheExpiration(self):
message = dns.message.from_text(message_text)
name = dns.name.from_text('example.')