import warnings
try:
import threading as _threading
-except ImportError:
- import dummy_threading as _threading # type: ignore # pragma: no cover
+except ImportError: # pragma: no cover
+ import dummy_threading as _threading # type: ignore
import dns.exception
import dns.flags
self.reset()
if configure:
if sys.platform == 'win32':
- self.read_registry()
+ self.read_registry() # pragma: no cover
elif filename:
self.read_resolv_conf(filename)
if isinstance(f, str):
try:
f = stack.enter_context(open(f))
- except IOError:
+ except OSError:
# /etc/resolv.conf doesn't exist, can't be read, etc.
raise NoResolverConfiguration
def query(self, qname, rdtype=dns.rdatatype.A, rdclass=dns.rdataclass.IN,
tcp=False, source=None, raise_on_no_answer=True, source_port=0,
- lifetime=None):
+ lifetime=None): # pragma: no cover
"""Query nameservers to find the answer to the question.
This method calls resolve() with ``search=True``, and is
def query(qname, rdtype=dns.rdatatype.A, rdclass=dns.rdataclass.IN,
tcp=False, source=None, raise_on_no_answer=True,
- source_port=0, lifetime=None):
+ source_port=0, lifetime=None): # pragma: no cover
"""Query nameservers to find the answer to the question.
This method calls resolve() with ``search=True``, and is
self.assertEqual(e2.canonical_name, dns.name.from_text(cname2))
+class ResolverMiscTestCase(unittest.TestCase):
+ if sys.platform != 'win32':
+ def test_read_nonexistent_config(self):
+ res = dns.resolver.Resolver(configure=False)
+ pathname = '/etc/nonexistent-resolv.conf'
+ self.assertRaises(dns.resolver.NoResolverConfiguration,
+ lambda: res.read_resolv_conf(pathname))
+
+ def test_compute_timeout(self):
+ res = dns.resolver.Resolver(configure=False)
+ now = time.time()
+ self.assertRaises(dns.resolver.Timeout,
+ lambda: res._compute_timeout(now + 10000))
+ self.assertRaises(dns.resolver.Timeout,
+ lambda: res._compute_timeout(0))
+ # not raising is the test
+ res._compute_timeout(now + 0.5)
+
+
class ResolverNameserverValidTypeTestCase(unittest.TestCase):
def test_set_nameservers_to_list(self):
resolver = dns.resolver.Resolver()