Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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))
Example #4
0
    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))
Example #5
0
    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)
Example #6
0
    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)