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 _export_zone(self): client = ZoneExportClient.as_user(self.user) self.post_resp, self.zone_export = client.post_zone_export( self.zone_id) assert self.post_resp.status == 202 self.addCleanup(self.cleanup_zone_export, client, self.zone_export.id) client.wait_for_zone_export(self.zone_export.id)
def test_import_domain(self): user = '******' resp, zone = ZoneClient.as_user(user).post_zone( datagen.random_zone_data()) ZoneClient.as_user(user).wait_for_zone(zone.id) export_client = ZoneExportClient.as_user(user) resp, model = export_client.post_zone_export(zone.id) export_id = model.id self.assertEqual(resp.status, 202) self.assertEqual(model.status, 'PENDING') export_client.wait_for_zone_export(export_id) resp, model = export_client.get_zone_export(export_id) self.assertEqual(resp.status, 200) self.assertEqual(model.status, 'COMPLETE') resp, body = export_client.get_exported_zone(export_id) self.assertEqual(resp.status, 200) export_client.delete_zone_export(export_id) self.assertRaises(NotFound, lambda: export_client.get_zone_export(model.id))