From b650013ccbec90b81dd2de75190de2e1834b641a Mon Sep 17 00:00:00 2001 From: Ross McFarland Date: Mon, 3 Dec 2018 15:03:53 -0800 Subject: [PATCH] Add a AAAA dyanmic.tests example, comments --- octodns/record.py | 7 ++----- tests/config/dynamic.tests.yaml | 30 +++++++++++++++++++++++++++++ tests/test_octodns_provider_yaml.py | 12 +++++++++--- 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/octodns/record.py b/octodns/record.py index 2395cf0..c19f22f 100644 --- a/octodns/record.py +++ b/octodns/record.py @@ -322,10 +322,6 @@ class _GeoMixin(_ValuesMixin): pass return reasons - # TODO: support 'value' as well - # TODO: move away from "data" hash to strict params, it's kind of leaking - # the yaml implementation into here and then forcing it back out into - # non-yaml providers during input def __init__(self, zone, name, data, *args, **kwargs): super(_GeoMixin, self).__init__(zone, name, data, *args, **kwargs) try: @@ -453,7 +449,8 @@ class _DynamicMixin(object): self.dynamic = dict(data['dynamic']) except: self.dynamic = {} - # TODO: + + # TODO: implement all this class Ipv4List(object): diff --git a/tests/config/dynamic.tests.yaml b/tests/config/dynamic.tests.yaml index 3b9632d..b927300 100644 --- a/tests/config/dynamic.tests.yaml +++ b/tests/config/dynamic.tests.yaml @@ -29,6 +29,36 @@ a: values: - 2.2.2.2 - 3.3.3.3 +aaaa: + dynamic: + pools: + ams: 2601:642:500:e210:62f8:1dff:feb8:9471 + iad: + - 2601:642:500:e210:62f8:1dff:feb8:9472 + - 2601:642:500:e210:62f8:1dff:feb8:9473 + lax: 2601:642:500:e210:62f8:1dff:feb8:9474 + sea: 2601:642:500:e210:62f8:1dff:feb8:9475 + rules: + - geo: EU-UK + pools: + 10: iad + - geo: EU + pools: + 10: ams + 10: iad + - geos: + - NA-US-CA + - NA-US-OR + - NA-US-WA + pools: + 25: iad + 75: sea + - pools: + 10: iad + type: AAAA + values: + - 2601:642:500:e210:62f8:1dff:feb8:947a + - 2601:644:500:e210:62f8:1dff:feb8:947a cname: dynamic: pools: diff --git a/tests/test_octodns_provider_yaml.py b/tests/test_octodns_provider_yaml.py index a787a29..d9be9d1 100644 --- a/tests/test_octodns_provider_yaml.py +++ b/tests/test_octodns_provider_yaml.py @@ -34,7 +34,7 @@ class TestYamlProvider(TestCase): self.assertEquals(18, len(zone.records)) source.populate(dynamic_zone) - self.assertEquals(3, len(dynamic_zone.records)) + self.assertEquals(4, len(dynamic_zone.records)) # Assumption here is that a clean round-trip means that everything # worked as expected, data that went in came back out and could be @@ -64,11 +64,11 @@ class TestYamlProvider(TestCase): # Dynamic plan plan = target.plan(dynamic_zone) - self.assertEquals(3, len(filter(lambda c: isinstance(c, Create), + self.assertEquals(4, len(filter(lambda c: isinstance(c, Create), plan.changes))) self.assertFalse(isfile(dynamic_yaml_file)) # Apply it - self.assertEquals(3, target.apply(plan)) + self.assertEquals(4, target.apply(plan)) self.assertTrue(isfile(dynamic_yaml_file)) # There should be no changes after the round trip @@ -122,6 +122,12 @@ class TestYamlProvider(TestCase): dyna = data.pop('a') self.assertTrue('values' in dyna) # self.assertTrue('dynamic' in dyna) + # TODO: + + # make sure new dynamic records made the trip + dyna = data.pop('aaaa') + self.assertTrue('values' in dyna) + # self.assertTrue('dynamic' in dyna) dyna = data.pop('cname') self.assertTrue('value' in dyna)