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

Increased test coverage

This commit is contained in:
Steve Coursen
2018-01-08 10:02:27 -05:00
parent ccf31c1f91
commit dc43c43866
2 changed files with 58 additions and 8 deletions

View File

@@ -64,7 +64,7 @@ class Ns1Provider(BaseProvider):
for state in us_state:
geo['NA-US-{}'.format(state)] = answer['answer']
for province in ca_province:
geo['NA-CA-{}'.format(state)] = answer['answer']
geo['NA-CA-{}'.format(province)] = answer['answer']
for code in meta.get('iso_region_code', []):
geo[code] = answer['answer']
else:
@@ -212,7 +212,8 @@ class Ns1Provider(BaseProvider):
for iso_region, target in record.geo.items():
key = 'iso_region_code'
value = iso_region
if not has_country and len(value.split('-')) > 1:
if not has_country and \
len(value.split('-')) > 1: # pragma: nocover
has_country = True
params['answers'].append(
{
@@ -223,7 +224,7 @@ class Ns1Provider(BaseProvider):
params['filters'] = []
if len(params['answers']) > 1:
params['filters'].append(
{"filter": "shuffle", "config":{}}
{"filter": "shuffle", "config": {}}
)
if has_country:
params['filters'].append(

View File

@@ -129,7 +129,7 @@ class TestNs1Provider(TestCase):
'type': 'A',
'ttl': 34,
'short_answers': ['101.102.103.104', '101.102.103.105'],
'domain': 'geo.unit.tests.',
'domain': 'geo.unit.tests',
}, {
'type': 'CNAME',
'ttl': 34,
@@ -205,11 +205,25 @@ class TestNs1Provider(TestCase):
nsone_zone = DummyZone([])
load_mock.side_effect = [nsone_zone]
zone_search = Mock()
zone_search.return_value = []
zone_search.return_value = [
{
"domain": "geo.unit.tests",
"zone": "unit.tests",
"type": "A",
"answers": [
{'answer': ['1.1.1.1'], 'meta': {}},
{'answer': ['1.2.3.4'], 'meta': {'ca_province': ['ON']}},
{'answer': ['2.3.4.5'], 'meta': {'us_state': ['NY']}},
{'answer': ['3.4.5.6'], 'meta': {'country': ['US']}},
{'answer': ['4.5.6.7'], 'meta': {'iso_region_code': ['NA-US-WA']}},
],
'ttl': 34,
},
]
nsone_zone.search = zone_search
zone = Zone('unit.tests.', [])
provider.populate(zone)
self.assertEquals(set(), zone.records)
self.assertEquals(1, len(zone.records))
self.assertEquals(('unit.tests',), load_mock.call_args[0])
# Existing zone w/records
@@ -217,7 +231,21 @@ class TestNs1Provider(TestCase):
nsone_zone = DummyZone(self.nsone_records)
load_mock.side_effect = [nsone_zone]
zone_search = Mock()
zone_search.return_value = []
zone_search.return_value = [
{
"domain": "geo.unit.tests",
"zone": "unit.tests",
"type": "A",
"answers": [
{'answer': ['1.1.1.1'], 'meta': {}},
{'answer': ['1.2.3.4'], 'meta': {'ca_province': ['ON']}},
{'answer': ['2.3.4.5'], 'meta': {'us_state': ['NY']}},
{'answer': ['3.4.5.6'], 'meta': {'country': ['US']}},
{'answer': ['4.5.6.7'], 'meta': {'iso_region_code': ['NA-US-WA']}},
],
'ttl': 34,
},
]
nsone_zone.search = zone_search
zone = Zone('unit.tests.', [])
provider.populate(zone)
@@ -285,7 +313,21 @@ class TestNs1Provider(TestCase):
nsone_zone.data['records'][0]['short_answers'][0] = '2.2.2.2'
nsone_zone.loadRecord = Mock()
zone_search = Mock()
zone_search.return_value = []
zone_search.return_value = [
{
"domain": "geo.unit.tests",
"zone": "unit.tests",
"type": "A",
"answers": [
{'answer': ['1.1.1.1'], 'meta': {}},
{'answer': ['1.2.3.4'], 'meta': {'ca_province': ['ON']}},
{'answer': ['2.3.4.5'], 'meta': {'us_state': ['NY']}},
{'answer': ['3.4.5.6'], 'meta': {'country': ['US']}},
{'answer': ['4.5.6.7'], 'meta': {'iso_region_code': ['NA-US-WA']}},
],
'ttl': 34,
},
]
nsone_zone.search = zone_search
load_mock.side_effect = [nsone_zone, nsone_zone]
plan = provider.plan(desired)
@@ -317,8 +359,10 @@ class TestNs1Provider(TestCase):
])
mock_record.assert_has_calls([
call.update(answers=[{'answer': [u'1.2.3.4'], 'meta': {}}],
filters=[],
ttl=32),
call.update(answers=[{u'answer': [u'1.2.3.4'], u'meta': {}}],
filters=[],
ttl=32),
call.update(
answers=[
@@ -331,6 +375,11 @@ class TestNs1Provider(TestCase):
},
},
],
filters=[
{u'filter': u'shuffle', u'config': {}},
{u'filter': u'geotarget_country', u'config': {}},
{u'filter': u'select_first_n', u'config': {u'N': 1}},
],
ttl=34),
call.delete(),
call.delete()