def test_zone_file_record_model_meta_test(self): record = ZoneFileRecord(name='one.com.', type='A', data='1.2.3.4') wrong_name = ZoneFileRecord(name='two.com.', type='A', data='1.2.3.4') wrong_type = ZoneFileRecord(name='one.com.', type='MX', data='1.2.3.4') wrong_data = ZoneFileRecord(name='one.com.', type='A', data='1.2.3.5') self.assertEqual(record, record) self.assertNotEqual(record, wrong_name) self.assertNotEqual(record, wrong_type) self.assertNotEqual(record, wrong_data)
def test_zone_file_records_from_recordset(self): # we don't need all of the recordset's fields here recordset = RecordsetModel.from_dict({ "type": "NS", "name": "mydomain.com.", "records": ["ns1.a.com.", "ns2.a.com.", "ns3.a.com."], }) records = ZoneFileRecord.records_from_recordset(recordset) expected = [ ZoneFileRecord(name="mydomain.com.", type="NS", data="ns1.a.com."), ZoneFileRecord(name="mydomain.com.", type="NS", data="ns2.a.com."), ZoneFileRecord(name="mydomain.com.", type="NS", data="ns3.a.com."), ] self.assertEqual(expected, records)
def test_export_domain(self): user = '******' zone_fixture = self.useFixture(ZoneFixture(user=user)) zone = zone_fixture.created_zone export_fixture = self.useFixture(ZoneExportFixture(zone.id, user=user)) export_id = export_fixture.zone_export.id export_client = ZoneExportClient.as_user(user) resp, model = export_client.get_zone_export(export_id) self.assertEqual(200, resp.status) self.assertEqual('COMPLETE', model.status) # fetch the zone file resp, zone_file = export_client.get_exported_zone(export_id) self.assertEqual(200, resp.status) self.assertEqual(zone.name, zone_file.origin) self.assertEqual(zone.ttl, zone_file.ttl) # the list of records in the zone file must match the zone's recordsets # (in this case there should be only two records - a SOA and an NS?) recordset_client = RecordsetClient.as_user(user) resp, model = recordset_client.list_recordsets(zone.id) records = [] for recordset in model.recordsets: records.extend(ZoneFileRecord.records_from_recordset(recordset)) self.assertEqual(set(records), set(zone_file.records)) export_client.delete_zone_export(export_id) self.assertRaises(NotFound, lambda: export_client.get_zone_export(export_id))
def test_zone_file_model_meta_test(self): zone_file = ZoneFile.from_text( """ $ORIGIN mydomain.com. $TTL 1234 mydomain.com. IN NS ns1.example.com. mydomain.com. IN SOA ns1.example.com. mail.mydomain.com. 1 2 3 4 5 """) self.assertEqual('mydomain.com.', zone_file.origin) self.assertEqual(1234, zone_file.ttl) ns_record = ZoneFileRecord( name='mydomain.com.', type='NS', data='ns1.example.com.') soa_record = ZoneFileRecord( name='mydomain.com.', type='SOA', data='ns1.example.com. mail.mydomain.com. 1 2 3 4 5') self.assertEqual(zone_file.records[0], ns_record) self.assertEqual(zone_file.records[1], soa_record)
def test_zone_file_records_from_recordset(self): # we don't need all of the recordset's fields here recordset = RecordsetModel.from_dict({ "type": "NS", "name": "mydomain.com.", "records": ["ns1.a.com.", "ns2.a.com.", "ns3.a.com."], }) records = ZoneFileRecord.records_from_recordset(recordset) expected = [ ZoneFileRecord(name="mydomain.com.", type="NS", data="ns1.a.com."), ZoneFileRecord(name="mydomain.com.", type="NS", data="ns2.a.com."), ZoneFileRecord(name="mydomain.com.", type="NS", data="ns3.a.com."), ] self.assertEqual(records, expected)