From: Bob Halley Date: Mon, 29 Jun 2020 02:05:28 +0000 (-0700) Subject: increase coverage X-Git-Tag: v2.0.0rc2~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7d30bd297fb63155474ee8199d81af7a04aca2db;p=thirdparty%2Fdnspython.git increase coverage --- diff --git a/MANIFEST.in b/MANIFEST.in index 2f3b4d41..8fdc68c5 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,3 @@ include LICENSE ChangeLog README.md recursive-include examples *.txt *.py -recursive-include tests *.txt *.py Makefile *.good example +recursive-include tests *.txt *.py Makefile *.good example query diff --git a/tests/query b/tests/query new file mode 100644 index 00000000..06edbb77 --- /dev/null +++ b/tests/query @@ -0,0 +1,12 @@ +id 1234 +opcode QUERY +rcode NOERROR +flags RD +edns 0 +eflags DO +payload 4096 +;QUESTION +wwww.dnspython.org. IN A +;ANSWER +;AUTHORITY +;ADDITIONAL diff --git a/tests/test_message.py b/tests/test_message.py index a1234095..ca1fc869 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -16,6 +16,7 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT # OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +import os import unittest import binascii @@ -27,6 +28,9 @@ import dns.rdataclass import dns.rdatatype import dns.rrset +def here(filename): + return os.path.join(os.path.dirname(__file__), filename) + query_text = """id 1234 opcode QUERY rcode NOERROR @@ -203,6 +207,7 @@ class MessageTestCase(unittest.TestCase): m = dns.message.make_query('foo', 'A') m.set_rcode(4095) self.assertEqual(m.rcode(), 4095) + self.assertEqual(m.edns, 0) m.set_rcode(2) self.assertEqual(m.rcode(), 2) @@ -239,6 +244,34 @@ class MessageTestCase(unittest.TestCase): dns.rdatatype.SOA) self.assertEqual(rrs1, rrs2) + def test_FindRRsetUnindexed(self): + a = dns.message.from_text(answer_text) + a.index = None + n = dns.name.from_text('dnspython.org.') + rrs1 = a.find_rrset(a.answer, n, dns.rdataclass.IN, dns.rdatatype.SOA) + rrs2 = a.find_rrset(dns.message.ANSWER, n, dns.rdataclass.IN, + dns.rdatatype.SOA) + self.assertEqual(rrs1, rrs2) + + def test_GetRRset(self): + a = dns.message.from_text(answer_text) + a.index = None + n = dns.name.from_text('dnspython.org.') + rrs1 = a.get_rrset(a.answer, n, dns.rdataclass.IN, dns.rdatatype.SOA) + rrs2 = a.get_rrset(dns.message.ANSWER, n, dns.rdataclass.IN, + dns.rdatatype.SOA) + self.assertEqual(rrs1, rrs2) + + def test_GetNonexistentRRset(self): + a = dns.message.from_text(answer_text) + a.index = None + n = dns.name.from_text('dnspython.org.') + rrs1 = a.get_rrset(a.answer, n, dns.rdataclass.IN, dns.rdatatype.TXT) + rrs2 = a.get_rrset(dns.message.ANSWER, n, dns.rdataclass.IN, + dns.rdatatype.TXT) + self.assertTrue(rrs1 is None) + self.assertEqual(rrs1, rrs2) + def test_CleanTruncated(self): def bad(): a = dns.message.from_text(answer_text) @@ -303,5 +336,15 @@ class MessageTestCase(unittest.TestCase): m.want_dnssec() self.assertEqual(m.edns, 0) + def test_from_file(self): + m = dns.message.from_file(here('query')) + expected = dns.message.from_text(query_text) + self.assertEqual(m, expected) + + def test_explicit_header_comment(self): + m = dns.message.from_text(';HEADER\n' + query_text) + expected = dns.message.from_text(query_text) + self.assertEqual(m, expected) + if __name__ == '__main__': unittest.main() diff --git a/tests/test_rrset.py b/tests/test_rrset.py index 9540e3c4..7835ba1d 100644 --- a/tests/test_rrset.py +++ b/tests/test_rrset.py @@ -158,5 +158,22 @@ class RRsetTestCase(unittest.TestCase): dns.rdataclass.IN, dns.rdatatype.A) self.assertFalse(rrs == 123) + def testRepr(self): + rrset = dns.rrset.from_text('foo', 30, 'in', 'a', '10.0.0.1', + '10.0.0.2') + self.assertEqual(repr(rrset), + ', <10.0.0.2>]>') + rrset.deleting = dns.rdataclass.NONE + self.assertEqual(repr(rrset), + ', <10.0.0.2>]>') + rrset = dns.rrset.from_text( + 'foo', 30, 'in', 'rrsig', + 'A 1 3 3600 20200701000000 20200601000000 1 NAME Ym9ndXM=') + self.assertEqual(repr(rrset), + ']>') + if __name__ == '__main__': unittest.main()