def test_one_A(self): in_bytes = b'\x00\x00\x80\x00\x00\x01\x00\x01\x00\x00\x00\x00' \ b'\x06google\x03com\x00\x00\x01\x00\x01' \ b'\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\x00' \ b'\x00\x04\xac\xd9\x0en' a_resource_data = _AResourceData(b'\xac\xd9\x0en') actual = Answer.from_bytes(in_bytes) self.assertEqual(0, actual.header.identifier) self.assertEqual(MessageType.RESPONSE, actual.header.message_type) self.assertEqual(QueryType.STANDARD, actual.header.query_type) self.assertEqual(False, actual.header.is_authority_answer) self.assertEqual(False, actual.header.is_truncated) self.assertEqual(False, actual.header.is_recursion_desired) self.assertEqual(False, actual.header.is_recursion_available) self.assertEqual(ResponseType.NO_ERROR, actual.header.response_type) self.assertEqual('google.com', actual.questions[0].name) self.assertEqual(RRType.A, actual.questions[0].type_) self.assertEqual(RRClass.IN, actual.questions[0].class_) self.assertEqual('google.com', actual.answers[0].name) self.assertEqual(RRType.A, actual.answers[0].type_) self.assertEqual(RRClass.IN, actual.answers[0].class_) self.assertEqual(0, actual.answers[0].ttl) self.assertEqual(4, actual.answers[0].length) self.assertEqual(a_resource_data.ip, actual.answers[0].data.ip)
def get_answer(hostname, record_type, *, inverse=False, ipv6=False, protocol, server, port, timeout): if inverse: hostname = get_ip_reverse_notation(hostname, ipv6=ipv6) response = send_query(hostname=hostname, record_type=record_type, protocol=protocol, server=server, port=port, timeout=timeout) try: answer = Answer.from_bytes(response) except InvalidAnswer as e: raise InvalidServerResponse from e return answer
def test_A(self, mock_socket_recv): response = resolver.tcp_query(self.bytes_, **self.argv) answer = Answer.from_bytes(response) self.assertEqual(answer.questions[0].name, 'google.com') self.assertEqual(answer.answers[0].data.ip, '74.125.232.231')
def test_A(self, mock_socket_recv): response = resolver.udp_query(self.bytes_, **self.argv) answer = Answer.from_bytes(response) self.assertEqual(answer.answers[0].name, 'yandex.com') self.assertEqual(answer.answers[0].data.ip, '213.180.204.62')