Beispiel #1
0
    def test_srv(self):
        provider = CloudflareProvider('test', 'email', 'token')

        zone = Zone('unit.tests.', [])
        # SRV record not under a sub-domain
        srv_record = Record.new(zone, '_example._tcp', {
            'ttl': 300,
            'type': 'SRV',
            'value': {
                'port': 1234,
                'priority': 0,
                'target': 'nc.unit.tests.',
                'weight': 5
            }
        })
        # SRV record under a sub-domain
        srv_record_with_sub = Record.new(zone, '_example._tcp.sub', {
            'ttl': 300,
            'type': 'SRV',
            'value': {
                'port': 1234,
                'priority': 0,
                'target': 'nc.unit.tests.',
                'weight': 5
            }
        })

        srv_record_contents = provider._gen_data(srv_record)
        srv_record_with_sub_contents = provider._gen_data(srv_record_with_sub)
        self.assertEquals({
            'name': '_example._tcp.unit.tests',
            'ttl': 300,
            'type': 'SRV',
            'data': {
                'service': '_example',
                'proto': '_tcp',
                'name': 'unit.tests.',
                'priority': 0,
                'weight': 5,
                'port': 1234,
                'target': 'nc.unit.tests'
            }
        }, list(srv_record_contents)[0])
        self.assertEquals({
            'name': '_example._tcp.sub.unit.tests',
            'ttl': 300,
            'type': 'SRV',
            'data': {
                'service': '_example',
                'proto': '_tcp',
                'name': 'sub',
                'priority': 0,
                'weight': 5,
                'port': 1234,
                'target': 'nc.unit.tests'
            }
        }, list(srv_record_with_sub_contents)[0])
Beispiel #2
0
    def test_unproxiabletype_gendata_returnsnoproxied(self):
        provider = CloudflareProvider('test', 'email', 'token')
        zone = Zone('unit.tests.', [])
        record = Record.new(zone, 'a', {
            'ttl': 3600,
            'type': 'NS',
            'value': 'ns1.unit.tests.'
        })

        data = next(provider._gen_data(record))

        self.assertFalse('proxied' in data)
Beispiel #3
0
    def test_proxiabletype_gendata_returnsproxied(self):
        provider = CloudflareProvider('test', 'email', 'token')
        zone = Zone('unit.tests.', [])
        record = set_record_proxied_flag(
            Record.new(zone, 'a', {
                'ttl': 300,
                'type': 'A',
                'value': '1.2.3.4'
            }), True)

        data = next(provider._gen_data(record))

        self.assertTrue(data['proxied'])
Beispiel #4
0
    def test_ptr(self):
        provider = CloudflareProvider('test', 'email', 'token')

        zone = Zone('unit.tests.', [])
        # PTR record
        ptr_record = Record.new(zone, 'ptr', {
            'ttl': 300,
            'type': 'PTR',
            'value': 'foo.bar.com.'
        })

        ptr_record_contents = provider._gen_data(ptr_record)
        self.assertEquals({
            'name': 'ptr.unit.tests',
            'ttl': 300,
            'type': 'PTR',
            'content': 'foo.bar.com.'
        }, list(ptr_record_contents)[0])
Beispiel #5
0
    def test_alias(self):
        provider = CloudflareProvider('test', 'email', 'token')

        # A CNAME for us to transform to ALIAS
        provider.zone_records = Mock(return_value=[
            {
                "id": "fc12ab34cd5611334422ab3322997642",
                "type": "CNAME",
                "name": "unit.tests",
                "content": "www.unit.tests",
                "proxiable": True,
                "proxied": False,
                "ttl": 300,
                "locked": False,
                "zone_id": "ff12ab34cd5611334422ab3322997650",
                "zone_name": "unit.tests",
                "modified_on": "2017-03-11T18:01:43.420689Z",
                "created_on": "2017-03-11T18:01:43.420689Z",
                "meta": {
                    "auto_added": False
                }
            },
        ])

        zone = Zone('unit.tests.', [])
        provider.populate(zone)
        self.assertEquals(1, len(zone.records))
        record = list(zone.records)[0]
        self.assertEquals('', record.name)
        self.assertEquals('unit.tests.', record.fqdn)
        self.assertEquals('ALIAS', record._type)
        self.assertEquals('www.unit.tests.', record.value)

        # Make sure we transform back to CNAME going the other way
        contents = provider._gen_data(record)
        self.assertEquals(
            {
                'content': 'www.unit.tests.',
                'name': 'unit.tests',
                'proxied': False,
                'ttl': 300,
                'type': 'CNAME'
            },
            list(contents)[0])