Browse Source

Increased test coverage

pull/164/head
Steve Coursen 8 years ago
parent
commit
dc43c43866
2 changed files with 58 additions and 8 deletions
  1. +4
    -3
      octodns/provider/ns1.py
  2. +54
    -5
      tests/test_octodns_provider_ns1.py

+ 4
- 3
octodns/provider/ns1.py 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(


+ 54
- 5
tests/test_octodns_provider_ns1.py 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()


Loading…
Cancel
Save