1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

Alter - New tests to be more unit-test-like.

This commit is contained in:
Matt
2018-10-18 21:25:43 +11:00
parent a0eaefb330
commit bcff231e35

View File

@@ -769,141 +769,16 @@ class TestCloudflareProvider(TestCase):
plan = provider.plan(wanted) plan = provider.plan(wanted)
self.assertEquals(False, hasattr(plan, 'changes')) self.assertEquals(False, hasattr(plan, 'changes'))
def test_proxied_ignore_ttl(self): def test_unproxiabletype_recordfor_returnsrecordwithnocloudflare(self):
provider = CloudflareProvider('test', 'email', 'token') provider = CloudflareProvider('test', 'email', 'token')
name = "unit.tests"
provider.zone_records = Mock(return_value=[ _type = "NS"
zone_records = [
{ {
"id": "fc12ab34cd5611334422ab3322997642", "id": "fc12ab34cd5611334422ab3322997654",
"type": "A", "type": _type,
"name": "unit.tests.a", "name": name,
"content": "1.2.3.4", "content": "ns2.foo.bar",
"proxiable": True,
"proxied": True,
"ttl": 1,
"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
}
},
{
"id": "fc12ab34cd5611334422ab3322997643",
"type": "AAAA",
"name": "unit.tests.aaaa",
"content": "::1",
"proxiable": True,
"proxied": True,
"ttl": 1,
"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
}
},
{
"id": "fc12ab34cd5611334422ab3322997644",
"type": "CNAME",
"name": "unit.tests.cname",
"content": "www.unit.tests",
"proxiable": True,
"proxied": True,
"ttl": 1,
"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)
wanted = Zone('unit.tests.', [])
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.a', {
'ttl': 120,
'type': 'A',
'value': '1.2.3.4'
}), True
)
)
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.aaaa', {
'ttl': 250,
'type': 'AAAA',
'value': '::1'
}), True
)
)
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.cname', {
'ttl': 300,
'type': 'CNAME',
'value': 'www.unit.tests.'
}), True
)
)
plan = provider.plan(wanted)
self.assertEquals(False, hasattr(plan, 'changes'))
def test_enable_proxied(self):
provider = CloudflareProvider('test', 'email', 'token')
provider.zone_records = Mock(return_value=[
{
"id": "fc12ab34cd5611334422ab3322997642",
"type": "A",
"name": "unit.tests.a",
"content": "1.2.3.4",
"proxiable": True,
"proxied": False,
"ttl": 120,
"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
}
},
{
"id": "fc12ab34cd5611334422ab3322997643",
"type": "AAAA",
"name": "unit.tests.aaaa",
"content": "::1",
"proxiable": True,
"proxied": False,
"ttl": 250,
"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
}
},
{
"id": "fc12ab34cd5611334422ab3322997644",
"type": "CNAME",
"name": "unit.tests.cname",
"content": "www.unit.tests",
"proxiable": True, "proxiable": True,
"proxied": False, "proxied": False,
"ttl": 300, "ttl": 300,
@@ -915,86 +790,152 @@ class TestCloudflareProvider(TestCase):
"meta": { "meta": {
"auto_added": False "auto_added": False
} }
}, }
]) ]
provider.zone_records = Mock(return_value=zone_records)
zone = Zone('unit.tests.', []) zone = Zone('unit.tests.', [])
provider.populate(zone) provider.populate(zone)
wanted = Zone('unit.tests.', []) record = provider._record_for(zone, name, _type, zone_records, False)
wanted.add_record(
set_record_proxied_flag( self.assertFalse('cloudflare' in record._octodns)
Record.new(wanted, 'unit.tests.a', {
'ttl': 120, def test_proxiabletype_recordfor_retrecordwithcloudflareunproxied(self):
provider = CloudflareProvider('test', 'email', 'token')
name = "multi.unit.tests"
_type = "AAAA"
zone_records = [
{
"id": "fc12ab34cd5611334422ab3322997642",
"type": _type,
"name": name,
"content": "::1",
"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
}
}
]
provider.zone_records = Mock(return_value=zone_records)
zone = Zone('unit.tests.', [])
provider.populate(zone)
record = provider._record_for(zone, name, _type, zone_records, False)
self.assertFalse(record._octodns['cloudflare']['proxied'])
def test_proxiabletype_recordfor_returnsrecordwithcloudflareproxied(self):
provider = CloudflareProvider('test', 'email', 'token')
name = "multi.unit.tests"
_type = "AAAA"
zone_records = [
{
"id": "fc12ab34cd5611334422ab3322997642",
"type": _type,
"name": name,
"content": "::1",
"proxiable": True,
"proxied": True,
"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
}
}
]
provider.zone_records = Mock(return_value=zone_records)
zone = Zone('unit.tests.', [])
provider.populate(zone)
record = provider._record_for(zone, name, _type, zone_records, False)
self.assertTrue(record._octodns['cloudflare']['proxied'])
def test_proxiedrecordandnewttl_includechange_returnsfalse(self):
provider = CloudflareProvider('test', 'email', 'token')
zone = Zone('unit.tests.', [])
existing = set_record_proxied_flag(
Record.new(zone, 'a', {
'ttl': 1,
'type': 'A',
'values': ['1.1.1.1', '2.2.2.2']
}), True
)
new = Record.new(zone, 'a', {
'ttl': 300,
'type': 'A',
'values': ['1.1.1.1', '2.2.2.2']
})
change = Update(existing, new)
include_change = provider._include_change(change)
self.assertFalse(include_change)
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 = provider._gen_data(record).next()
self.assertFalse('proxied' in data)
def test_proxiabletype_gendata_returnsunproxied(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'
}), False
)
data = provider._gen_data(record).next()
self.assertFalse(data['proxied'])
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', 'type': 'A',
'value': '1.2.3.4' 'value': '1.2.3.4'
}), True }), True
) )
)
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.aaaa', {
'ttl': 250,
'type': 'AAAA',
'value': '::1'
}), True
)
)
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.cname', {
'ttl': 300,
'type': 'CNAME',
'value': 'www.unit.tests.'
}), True
)
)
plan = provider.plan(wanted) data = provider._gen_data(record).next()
self.assertEquals(True, hasattr(plan, 'changes'))
def test_disable_proxied(self): self.assertTrue(data['proxied'])
def test_createrecord_extrachanges_returnsemptylist(self):
provider = CloudflareProvider('test', 'email', 'token') provider = CloudflareProvider('test', 'email', 'token')
provider.zone_records = Mock(return_value=[])
existing = Zone('unit.tests.', [])
provider.populate(existing)
provider.zone_records = Mock(return_value=[ provider.zone_records = Mock(return_value=[
{ {
"id": "fc12ab34cd5611334422ab3322997642", "id": "fc12ab34cd5611334422ab3322997642",
"type": "A",
"name": "unit.tests.a",
"content": "1.2.3.4",
"proxiable": True,
"proxied": True,
"ttl": 120,
"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
}
},
{
"id": "fc12ab34cd5611334422ab3322997643",
"type": "AAAA",
"name": "unit.tests.aaaa",
"content": "::1",
"proxiable": True,
"proxied": True,
"ttl": 250,
"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
}
},
{
"id": "fc12ab34cd5611334422ab3322997644",
"type": "CNAME", "type": "CNAME",
"name": "unit.tests.cname", "name": "a.unit.tests",
"content": "www.unit.tests", "content": "www.unit.tests",
"proxiable": True, "proxiable": True,
"proxied": True, "proxied": True,
@@ -1007,146 +948,25 @@ class TestCloudflareProvider(TestCase):
"meta": { "meta": {
"auto_added": False "auto_added": False
} }
}, }
]) ])
desired = Zone('unit.tests.', [])
provider.populate(desired)
changes = existing.changes(desired, provider)
zone = Zone('unit.tests.', []) extra_changes = provider._extra_changes(existing, desired, changes)
provider.populate(zone)
wanted = Zone('unit.tests.', []) self.assertFalse(extra_changes)
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.a', {
'ttl': 120,
'type': 'A',
'value': '1.2.3.4'
}), False
)
)
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.aaaa', {
'ttl': 250,
'type': 'AAAA',
'value': '::1'
}), False
)
)
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.cname', {
'ttl': 300,
'type': 'CNAME',
'value': 'www.unit.tests.'
}), False
)
)
plan = provider.plan(wanted) def test_updaterecord_extrachanges_returnsemptylist(self):
self.assertEquals(True, hasattr(plan, 'changes'))
def test_leave_proxied_disabled(self):
provider = CloudflareProvider('test', 'email', 'token') provider = CloudflareProvider('test', 'email', 'token')
provider.zone_records = Mock(return_value=[ provider.zone_records = Mock(return_value=[
{ {
"id": "fc12ab34cd5611334422ab3322997642", "id": "fc12ab34cd5611334422ab3322997642",
"type": "A",
"name": "unit.tests.a",
"content": "1.2.3.4",
"proxiable": True,
"proxied": False,
"ttl": 120,
"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
}
},
{
"id": "fc12ab34cd5611334422ab3322997643",
"type": "AAAA",
"name": "unit.tests.aaaa",
"content": "::1",
"proxiable": True,
"proxied": False,
"ttl": 250,
"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
}
},
{
"id": "fc12ab34cd5611334422ab3322997644",
"type": "CNAME", "type": "CNAME",
"name": "unit.tests.cname", "name": "a.unit.tests",
"content": "www.unit.tests", "content": "www.unit.tests",
"proxiable": True, "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)
wanted = Zone('unit.tests.', [])
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.a', {
'ttl': 120,
'type': 'A',
'value': '1.2.3.4'
}), False
)
)
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.aaaa', {
'ttl': 250,
'type': 'AAAA',
'value': '::1'
}), False
)
)
wanted.add_record(
set_record_proxied_flag(
Record.new(wanted, 'unit.tests.cname', {
'ttl': 300,
'type': 'CNAME',
'value': 'www.unit.tests.'
}), False
)
)
plan = provider.plan(wanted)
self.assertEquals(False, hasattr(plan, 'changes'))
def test_leave_proxied_enabled(self):
provider = CloudflareProvider('test', 'email', 'token')
provider.zone_records = Mock(return_value=[
{
"id": "fc12ab34cd5611334422ab3322997642",
"type": "A",
"name": "unit.tests.a",
"content": "1.2.3.4",
"proxiable": True,
"proxied": True, "proxied": True,
"ttl": 120, "ttl": 120,
"locked": False, "locked": False,
@@ -1157,28 +977,15 @@ class TestCloudflareProvider(TestCase):
"meta": { "meta": {
"auto_added": False "auto_added": False
} }
},
{
"id": "fc12ab34cd5611334422ab3322997643",
"type": "AAAA",
"name": "unit.tests.aaaa",
"content": "::1",
"proxiable": True,
"proxied": True,
"ttl": 250,
"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
} }
}, ])
existing = Zone('unit.tests.', [])
provider.populate(existing)
provider.zone_records = Mock(return_value=[
{ {
"id": "fc12ab34cd5611334422ab3322997644", "id": "fc12ab34cd5611334422ab3322997642",
"type": "CNAME", "type": "CNAME",
"name": "unit.tests.cname", "name": "a.unit.tests",
"content": "www.unit.tests", "content": "www.unit.tests",
"proxiable": True, "proxiable": True,
"proxied": True, "proxied": True,
@@ -1191,40 +998,156 @@ class TestCloudflareProvider(TestCase):
"meta": { "meta": {
"auto_added": False "auto_added": False
} }
}, }
]) ])
desired = Zone('unit.tests.', [])
provider.populate(desired)
changes = existing.changes(desired, provider)
zone = Zone('unit.tests.', []) extra_changes = provider._extra_changes(existing, desired, changes)
provider.populate(zone)
wanted = Zone('unit.tests.', []) self.assertFalse(extra_changes)
wanted.add_record(
set_record_proxied_flag( def test_deleterecord_extrachanges_returnsemptylist(self):
Record.new(wanted, 'unit.tests.a', { provider = CloudflareProvider('test', 'email', 'token')
'ttl': 120, provider.zone_records = Mock(return_value=[
'type': 'A', {
'value': '1.2.3.4' "id": "fc12ab34cd5611334422ab3322997642",
}), True "type": "CNAME",
) "name": "a.unit.tests",
) "content": "www.unit.tests",
wanted.add_record( "proxiable": True,
set_record_proxied_flag( "proxied": True,
Record.new(wanted, 'unit.tests.aaaa', { "ttl": 300,
'ttl': 250, "locked": False,
'type': 'AAAA', "zone_id": "ff12ab34cd5611334422ab3322997650",
'value': '::1' "zone_name": "unit.tests",
}), True "modified_on": "2017-03-11T18:01:43.420689Z",
) "created_on": "2017-03-11T18:01:43.420689Z",
) "meta": {
wanted.add_record( "auto_added": False
set_record_proxied_flag( }
Record.new(wanted, 'unit.tests.cname', { }
'ttl': 300, ])
'type': 'CNAME', existing = Zone('unit.tests.', [])
'value': 'www.unit.tests.' provider.populate(existing)
}), True provider.zone_records = Mock(return_value=[])
desired = Zone('unit.tests.', [])
provider.populate(desired)
changes = existing.changes(desired, provider)
extra_changes = provider._extra_changes(existing, desired, changes)
self.assertFalse(extra_changes)
def test_proxify_extrachanges_returnsupdatelist(self):
provider = CloudflareProvider('test', 'email', 'token')
provider.zone_records = Mock(return_value=[
{
"id": "fc12ab34cd5611334422ab3322997642",
"type": "CNAME",
"name": "a.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
}
}
])
existing = Zone('unit.tests.', [])
provider.populate(existing)
provider.zone_records = Mock(return_value=[
{
"id": "fc12ab34cd5611334422ab3322997642",
"type": "CNAME",
"name": "a.unit.tests",
"content": "www.unit.tests",
"proxiable": True,
"proxied": True,
"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
}
}
])
desired = Zone('unit.tests.', [])
provider.populate(desired)
changes = existing.changes(desired, provider)
extra_changes = provider._extra_changes(existing, desired, changes)
self.assertEquals(1, len(extra_changes))
self.assertFalse(
extra_changes[0].existing._octodns['cloudflare']['proxied']
) )
self.assertTrue(
extra_changes[0].new._octodns['cloudflare']['proxied']
) )
plan = provider.plan(wanted) def test_unproxify_extrachanges_returnsupdatelist(self):
self.assertEquals(False, hasattr(plan, 'changes')) provider = CloudflareProvider('test', 'email', 'token')
provider.zone_records = Mock(return_value=[
{
"id": "fc12ab34cd5611334422ab3322997642",
"type": "CNAME",
"name": "a.unit.tests",
"content": "www.unit.tests",
"proxiable": True,
"proxied": True,
"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
}
}
])
existing = Zone('unit.tests.', [])
provider.populate(existing)
provider.zone_records = Mock(return_value=[
{
"id": "fc12ab34cd5611334422ab3322997642",
"type": "CNAME",
"name": "a.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
}
}
])
desired = Zone('unit.tests.', [])
provider.populate(desired)
changes = existing.changes(desired, provider)
extra_changes = provider._extra_changes(existing, desired, changes)
self.assertEquals(1, len(extra_changes))
self.assertTrue(
extra_changes[0].existing._octodns['cloudflare']['proxied']
)
self.assertFalse(
extra_changes[0].new._octodns['cloudflare']['proxied']
)