diff --git a/octodns/provider/ns1.py b/octodns/provider/ns1.py index e8ba8cd..6b0fe7e 100644 --- a/octodns/provider/ns1.py +++ b/octodns/provider/ns1.py @@ -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' diff --git a/tests/test_octodns_provider_ns1.py b/tests/test_octodns_provider_ns1.py index c8ff222..10ae5d3 100644 --- a/tests/test_octodns_provider_ns1.py +++ b/tests/test_octodns_provider_ns1.py @@ -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']