import dns.reversename
import dns.tsig
-if sys.platform == "win32":
+if sys.platform == "win32": # pragma: no cover
import dns.win32util
cname = response.canonical_name()
if cname != qname:
return cname
- except Exception:
+ except Exception: # pragma: no cover
# We can just eat this exception as it means there was
# something wrong with the response.
pass
answers[dns.rdatatype.A] = v4
return answers
- # Returns pairs of (address, family) from this result, potentiallys
+ # Returns pairs of (address, family) from this result, potentially
# filtering by address family.
def addresses_and_families(
self, family: int = socket.AF_UNSPEC
answer = self.get(dns.rdatatype.AAAA)
elif family == socket.AF_INET:
answer = self.get(dns.rdatatype.A)
- else:
+ else: # pragma: no cover
raise NotImplementedError(f"unknown address family {family}")
if answer:
for rdata in answer:
self.reset()
if configure:
- if sys.platform == "win32":
+ if sys.platform == "win32": # pragma: no cover
self.read_registry()
elif filename:
self.read_resolv_conf(filename)
"""Reset all resolver configuration to the defaults."""
self.domain = dns.name.Name(dns.name.from_text(socket.gethostname())[1:])
- if len(self.domain) == 0:
+ if len(self.domain) == 0: # pragma: no cover
self.domain = dns.name.root
self._nameservers = []
self.nameserver_ports = {}
# setter logic, with additonal checking and enrichment.
self.nameservers = nameservers
- def read_registry(self) -> None:
+ def read_registry(self) -> None: # pragma: no cover
"""Extract resolver configuration from the Windows registry."""
try:
info = dns.win32util.get_dns_info() # type: ignore
elif family == socket.AF_INET6:
v6 = self.resolve(name, dns.rdatatype.AAAA, **modified_kwargs)
return HostAnswers.make(v6=v6)
- elif family != socket.AF_UNSPEC:
+ elif family != socket.AF_UNSPEC: # pragma: no cover
raise NotImplementedError(f"unknown address family {family}")
raise_on_no_answer = modified_kwargs.pop("raise_on_no_answer", True)
nameservers = dns._ddr._get_nameservers_sync(answer, timeout)
if len(nameservers) > 0:
self.nameservers = nameservers
- except Exception:
+ except Exception: # pragma: no cover
pass
return get_default_resolver().canonical_name(name)
-def try_ddr(lifetime: float = 5.0) -> None:
+def try_ddr(lifetime: float = 5.0) -> None: # pragma: no cover
"""Try to update the default resolver's nameservers using Discovery of Designated
Resolvers (DDR). If successful, the resolver will subsequently use
DNS-over-HTTPS or DNS-over-TLS for future queries.
(name, _, _) = _gethostbyaddr(name)
# Python's version checks aliases too, but our gethostbyname
# ignores them, so we do so here as well.
- except Exception:
+ except Exception: # pragma: no cover
pass
return name