def test_no_records_but_subrecords(self): resp = self.make_request(Request(Question('swift.dev', 'A', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual(resp.answers, ()) resp = self.make_request( Request(Question('crazy.domain', 'AAAA', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual(resp.answers, ()) resp = self.make_request( Request(Question('other.domain', 'CNAME', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual(resp.answers, ())
def test_not_implemented(self): def assertNotImpl(resp): self.assertEqual(resp.response_code_name, 'NotImp') self.assertEqual(resp.answers, ()) self.assertEqual(resp.name_servers, ()) self.assertEqual(resp.additional_records, ()) assertNotImpl( self.make_request( Request(Question('some.crazy.domain', 'MX', 'IN')))) assertNotImpl( self.make_request( Request((Question('some.crazy.domain', 'A', 'IN'), Question('some.other.domain', 'A', 'IN')))))
def test_bad_request(self): resp = self.make_request( Request(Question('this does not make sense', 'A', 'IN'))) self.assertEqual(resp.response_code_name, 'FormErr') self.assertEqual(resp.answers, ()) self.assertEqual(resp.name_servers, ()) self.assertEqual(resp.additional_records, ())
def test_cname_ipv4(self): resp = self.make_request( Request(Question('some.other.domain', 'A', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual( resp.answers, (ResourceRecord(Domain('some.other.domain'), 'CNAME', 'IN', 300, Domain('somewhere.else.entirely')), ))
def test_cname_only(self): resp = self.make_request( Request(Question('some.crazy.domain', 'CNAME', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual( resp.answers, (ResourceRecord(Domain('some.crazy.domain'), 'CNAME', 'IN', 300, Domain('container.auth-test.swift.dev')), ))
def test_wildcard_ipv4(self): resp = self.make_request(Request(Question('blah.swift.dev', 'A', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual( {(str(rr.rrname), rr.rrtype_name, rr.rrclass_name, str(rr.data)) for rr in resp.answers}, { ('blah.swift.dev', 'A', 'IN', '127.0.0.1'), ('blah.swift.dev', 'A', 'IN', '127.0.1.1'), })
def test_txt_only(self): resp = self.make_request( Request(Question('some.crazy.domain', 'TXT', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual( set(resp.answers), { ResourceRecord(Domain('some.crazy.domain'), 'TXT', 'IN', 300, (b'foo=bar', )), ResourceRecord(Domain('some.crazy.domain'), 'TXT', 'IN', 300, (b'baz=quux', )), })
def test_all_does_not_recurse(self): resp = self.make_request( Request(Question('some.crazy.domain', '*', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual( set(resp.answers), { ResourceRecord(Domain('some.crazy.domain'), 'CNAME', 'IN', 300, Domain('container.auth-test.swift.dev')), ResourceRecord(Domain('some.crazy.domain'), 'TXT', 'IN', 300, (b'foo=bar', )), ResourceRecord(Domain('some.crazy.domain'), 'TXT', 'IN', 300, (b'baz=quux', )), })
def test_cname_ipv4_recurses(self): resp = self.make_request( Request(Question('some.crazy.domain', 'A', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual( resp.answers[0], ResourceRecord(Domain('some.crazy.domain'), 'CNAME', 'IN', 300, Domain('container.auth-test.swift.dev'))) self.assertEqual( {(str(rr.rrname), rr.rrtype_name, rr.rrclass_name, str(rr.data)) for rr in resp.answers[1:]}, { ('container.auth-test.swift.dev', 'A', 'IN', '127.0.0.1'), ('container.auth-test.swift.dev', 'A', 'IN', '127.0.1.1'), })
def test_nxdomain_ipv6(self): resp = self.make_request( Request(Question('non.existent.domain', 'AAAA', 'IN'))) self.assertEqual(resp.response_code_name, 'NXDomain') self.assertEqual(resp.answers, ())
def test_wildcard_ipv6(self): resp = self.make_request( Request(Question('blah.swift.dev', 'AAAA', 'IN'))) self.assertEqual(resp.response_code_name, 'NoError') self.assertEqual(resp.answers, (ResourceRecord( Domain('blah.swift.dev'), 'AAAA', 'IN', 300, '::1'), ))