コード例 #1
0
    def test_read_resource_records(self):
        """
        Test case to decode three consecutive resource records
        """
        records: List[ResourceRecord] = DNSMessage._read_resource_records(
            BytesIO(self.three_consecutive_resource_records_encoded),
            BytesIO(self.three_consecutive_resource_records_encoded), 3)

        # Check that the first name server record was correctly decoded
        self.assertEqual(records[0].name, 'ca')
        self.assertEqual(records[0].type, 2)
        self.assertEqual(records[0].response_class, 1)
        self.assertEqual(records[0].ttl, 150873)
        self.assertEqual(records[0].rdlength, 14)
        self.assertEqual(records[0].rdata, 'x.ca-servers')

        # Check that the first name server record was correctly decoded
        self.assertEqual(records[1].name, 'ubc')
        self.assertEqual(records[1].type, 1)
        self.assertEqual(records[1].response_class, 2)
        self.assertEqual(records[1].ttl, 150873)
        self.assertEqual(records[1].rdlength, 4)
        self.assertEqual(records[1].rdata, '1.2.3.4')

        # Check that the first name server record was correctly decoded
        self.assertEqual(records[2].name, 'tsn')
        self.assertEqual(records[2].type, 5)
        self.assertEqual(records[2].response_class, 3)
        self.assertEqual(records[2].ttl, 150873)
        self.assertEqual(records[2].rdlength, 13)
        self.assertEqual(records[2].rdata, 'x.z-servers')
コード例 #2
0
    def test_read_resource_questions_no_records(self):
        """
        Test case to attempt to decode 0 resource records. In other words, don't decode anything and return an empty list.
        """
        records: List[ResourceRecord] = DNSMessage._read_resource_records(
            BytesIO(self.three_consecutive_resource_records_encoded),
            BytesIO(self.three_consecutive_resource_records_encoded), 0)

        self.assertEqual(len(records), 0)