Browse Source

add geo support for ns1

pull/164/head
Steve Coursen 8 years ago
parent
commit
481bbe10f6
2 changed files with 21 additions and 9 deletions
  1. +3
    -3
      octodns/provider/ns1.py
  2. +18
    -6
      tests/test_octodns_provider_ns1.py

+ 3
- 3
octodns/provider/ns1.py View File

@ -7,12 +7,12 @@ from __future__ import absolute_import, division, print_function, \
from logging import getLogger
from itertools import chain
from nsone import NSONE, Config
from nsone import NSONE
from nsone.rest.errors import RateLimitException, ResourceException
from incf.countryutils import transformations
from time import sleep
from ..record import _GeoMixin, Record
from ..record import Record
from .base import BaseProvider
@ -202,7 +202,7 @@ class Ns1Provider(BaseProvider):
if hasattr(record, 'geo'):
# purposefully set non-geo answers to have an empty meta,
# so that we know we did this on purpose if/when troubleshooting
params['answers'] = [{"answer": [x], "meta": {}} \
params['answers'] = [{"answer": [x], "meta": {}}
for x in record.values]
for iso_region, target in record.geo.items():
key = 'iso_region_code'


+ 18
- 6
tests/test_octodns_provider_ns1.py View File

@ -306,7 +306,8 @@ class TestNs1Provider(TestCase):
None,
None,
]
nsone_zone.loadRecord.side_effect = [mock_record, mock_record, mock_record]
nsone_zone.loadRecord.side_effect = [mock_record, mock_record,
mock_record]
got_n = provider.apply(plan)
self.assertEquals(3, got_n)
nsone_zone.loadRecord.assert_has_calls([
@ -315,17 +316,28 @@ class TestNs1Provider(TestCase):
call('delete-me', u'A'),
])
mock_record.assert_has_calls([
call.update(answers=[{'answer': [u'1.2.3.4'], 'meta': {}}], ttl=32),
call.update(answers=[{u'answer': [u'1.2.3.4'], u'meta': {}}], ttl=32),
call.update(answers=[{u'answer': [u'101.102.103.104'], u'meta': {}}, {u'answer': [u'101.102.103.105'], u'meta': {}}, {u'answer': [u'201.202.203.204'], u'meta': {u'iso_region_code': [u'NA-US-NY']}}], ttl=34),
call.update(answers=[{'answer': [u'1.2.3.4'], 'meta': {}}],
ttl=32),
call.update(answers=[{u'answer': [u'1.2.3.4'], u'meta': {}}],
ttl=32),
call.update(
answers=[
{u'answer': [u'101.102.103.104'], u'meta': {}},
{u'answer': [u'101.102.103.105'], u'meta': {}},
{
u'answer': [u'201.202.203.204'],
u'meta': {
u'iso_region_code': [u'NA-US-NY']
},
},
],
ttl=34),
call.delete(),
call.delete()
])
def test_escaping(self):
provider = Ns1Provider('test', 'api-key')
record = {
'ttl': 31,
'short_answers': ['foo; bar baz; blip']


Loading…
Cancel
Save