diff options
| author | Bob Halley <halley@play-bow.org> | 2020-07-01 07:43:13 -0700 |
|---|---|---|
| committer | Bob Halley <halley@play-bow.org> | 2020-07-01 07:43:13 -0700 |
| commit | 7461bbefbee32d77c470816cd020a082d07a13b4 (patch) | |
| tree | 3a03b60ee63f861ca968b95883000edefa115847 | |
| parent | c9620a298f917f127d46dedeac4908ade66c2c19 (diff) | |
| download | dnspython-7461bbefbee32d77c470816cd020a082d07a13b4.tar.gz | |
increase resolver coverage
| -rw-r--r-- | dns/resolver.py | 4 | ||||
| -rw-r--r-- | tests/test_resolver.py | 58 |
2 files changed, 60 insertions, 2 deletions
diff --git a/dns/resolver.py b/dns/resolver.py index c46647c..f4a07b4 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -834,13 +834,13 @@ class Resolver: else: try: servers, rtype = winreg.QueryValueEx(key, 'DhcpNameServer') - except WindowsError: # pylint: disable=undefined-variable + except WindowsError: # pragma: no cover servers = None if servers: # pragma: no cover self._config_win32_nameservers(servers) try: dom, rtype = winreg.QueryValueEx(key, 'DhcpDomain') - if dom: + if dom: # pragma: no cover self._config_win32_domain(dom) except WindowsError: # pragma: no cover pass 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.') |
