diff options
| author | Brian Wellington <bwelling@xbill.org> | 2023-03-10 18:12:02 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-10 18:12:02 -0800 |
| commit | 5ee0d6714a0bc0303491a253d86146b342c27918 (patch) | |
| tree | 50316ee23c16735d23803892730443bc53609993 /tests | |
| parent | 98b12e9e43847dac615bb690355d2fabaff969d2 (diff) | |
| download | dnspython-5ee0d6714a0bc0303491a253d86146b342c27918.tar.gz | |
Add dns.resolver.resolve_name(). (#903)
* Add dns.resolver.resolve_name().
* Add missing type annotations.
* Add async resolve_name().
* Replace List[Answer] with HostAnswers.
* Switch addresses_and_families() tuple order
* Fix comment.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_async.py | 42 | ||||
| -rw-r--r-- | tests/test_resolver.py | 28 |
2 files changed, 70 insertions, 0 deletions
diff --git a/tests/test_async.py b/tests/test_async.py index 65f1ed9..52ba2e2 100644 --- a/tests/test_async.py +++ b/tests/test_async.py @@ -187,6 +187,48 @@ class AsyncTests(unittest.TestCase): dnsgoogle = dns.name.from_text("dns.google.") self.assertEqual(answer[0].target, dnsgoogle) + def testResolveName(self): + async def run1(): + return await dns.asyncresolver.resolve_name("dns.google.") + + answers = self.async_run(run1) + seen = set(answers.addresses()) + self.assertEqual(len(seen), 4) + self.assertIn("8.8.8.8", seen) + self.assertIn("8.8.4.4", seen) + self.assertIn("2001:4860:4860::8844", seen) + self.assertIn("2001:4860:4860::8888", seen) + + async def run2(): + return await dns.asyncresolver.resolve_name("dns.google.", socket.AF_INET) + + answers = self.async_run(run2) + seen = set(answers.addresses()) + self.assertEqual(len(seen), 2) + self.assertIn("8.8.8.8", seen) + self.assertIn("8.8.4.4", seen) + + async def run3(): + return await dns.asyncresolver.resolve_name("dns.google.", socket.AF_INET6) + + answers = self.async_run(run3) + seen = set(answers.addresses()) + self.assertEqual(len(seen), 2) + self.assertIn("2001:4860:4860::8844", seen) + self.assertIn("2001:4860:4860::8888", seen) + + async def run4(): + await dns.asyncresolver.resolve_name("nxdomain.dnspython.org") + + with self.assertRaises(dns.resolver.NXDOMAIN): + self.async_run(run4) + + async def run5(): + await dns.asyncresolver.resolve_name(dns.reversename.from_address("8.8.8.8")) + + with self.assertRaises(dns.resolver.NoAnswer): + self.async_run(run5) + def testCanonicalNameNoCNAME(self): cname = dns.name.from_text("www.google.com") diff --git a/tests/test_resolver.py b/tests/test_resolver.py index c1a97bf..c73451e 100644 --- a/tests/test_resolver.py +++ b/tests/test_resolver.py @@ -31,6 +31,7 @@ import dns.quic import dns.rdataclass import dns.rdatatype import dns.resolver +import dns.reversename import dns.tsig import dns.tsigkeyring import tests.util @@ -665,6 +666,33 @@ class LiveResolverTests(unittest.TestCase): dnsgoogle = dns.name.from_text("dns.google.") self.assertEqual(answer[0].target, dnsgoogle) + def testResolveName(self): + answers = dns.resolver.resolve_name("dns.google.") + seen = set(answers.addresses()) + self.assertEqual(len(seen), 4) + self.assertIn("8.8.8.8", seen) + self.assertIn("8.8.4.4", seen) + self.assertIn("2001:4860:4860::8844", seen) + self.assertIn("2001:4860:4860::8888", seen) + + answers = dns.resolver.resolve_name("dns.google.", socket.AF_INET) + seen = set(answers.addresses()) + self.assertEqual(len(seen), 2) + self.assertIn("8.8.8.8", seen) + self.assertIn("8.8.4.4", seen) + + answers = dns.resolver.resolve_name("dns.google.", socket.AF_INET6) + seen = set(answers.addresses()) + self.assertEqual(len(seen), 2) + self.assertIn("2001:4860:4860::8844", seen) + self.assertIn("2001:4860:4860::8888", seen) + + with self.assertRaises(dns.resolver.NXDOMAIN): + dns.resolver.resolve_name("nxdomain.dnspython.org") + + with self.assertRaises(dns.resolver.NoAnswer): + dns.resolver.resolve_name(dns.reversename.from_address("8.8.8.8")) + @patch.object(dns.message.Message, "use_edns") def testResolveEdnsOptions(self, message_use_edns_mock): resolver = dns.resolver.Resolver() |
