|
|
|
@ -35,10 +35,10 @@ class TestYamlProvider(TestCase): |
|
|
|
|
|
|
|
# without it we see everything |
|
|
|
source.populate(zone) |
|
|
|
self.assertEquals(18, len(zone.records)) |
|
|
|
self.assertEquals(19, len(zone.records)) |
|
|
|
|
|
|
|
source.populate(dynamic_zone) |
|
|
|
self.assertEquals(5, len(dynamic_zone.records)) |
|
|
|
self.assertEquals(6, 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 |
|
|
|
@ -58,21 +58,21 @@ class TestYamlProvider(TestCase): |
|
|
|
|
|
|
|
# We add everything |
|
|
|
plan = target.plan(zone) |
|
|
|
self.assertEquals(15, len([c for c in plan.changes |
|
|
|
self.assertEquals(16, len([c for c in plan.changes |
|
|
|
if isinstance(c, Create)])) |
|
|
|
self.assertFalse(isfile(yaml_file)) |
|
|
|
|
|
|
|
# Now actually do it |
|
|
|
self.assertEquals(15, target.apply(plan)) |
|
|
|
self.assertEquals(16, target.apply(plan)) |
|
|
|
self.assertTrue(isfile(yaml_file)) |
|
|
|
|
|
|
|
# Dynamic plan |
|
|
|
plan = target.plan(dynamic_zone) |
|
|
|
self.assertEquals(5, len([c for c in plan.changes |
|
|
|
self.assertEquals(6, len([c for c in plan.changes |
|
|
|
if isinstance(c, Create)])) |
|
|
|
self.assertFalse(isfile(dynamic_yaml_file)) |
|
|
|
# Apply it |
|
|
|
self.assertEquals(5, target.apply(plan)) |
|
|
|
self.assertEquals(6, target.apply(plan)) |
|
|
|
self.assertTrue(isfile(dynamic_yaml_file)) |
|
|
|
|
|
|
|
# There should be no changes after the round trip |
|
|
|
@ -87,7 +87,7 @@ class TestYamlProvider(TestCase): |
|
|
|
|
|
|
|
# A 2nd sync should still create everything |
|
|
|
plan = target.plan(zone) |
|
|
|
self.assertEquals(15, len([c for c in plan.changes |
|
|
|
self.assertEquals(16, len([c for c in plan.changes |
|
|
|
if isinstance(c, Create)])) |
|
|
|
|
|
|
|
with open(yaml_file) as fh: |
|
|
|
@ -109,6 +109,7 @@ class TestYamlProvider(TestCase): |
|
|
|
# these are stored as singular 'value' |
|
|
|
self.assertTrue('value' in data.pop('aaaa')) |
|
|
|
self.assertTrue('value' in data.pop('cname')) |
|
|
|
self.assertTrue('value' in data.pop('dname')) |
|
|
|
self.assertTrue('value' in data.pop('included')) |
|
|
|
self.assertTrue('value' in data.pop('ptr')) |
|
|
|
self.assertTrue('value' in data.pop('spf')) |
|
|
|
@ -136,6 +137,10 @@ class TestYamlProvider(TestCase): |
|
|
|
self.assertTrue('value' in dyna) |
|
|
|
# self.assertTrue('dynamic' in dyna) |
|
|
|
|
|
|
|
dyna = data.pop('dname') |
|
|
|
self.assertTrue('value' in dyna) |
|
|
|
# self.assertTrue('dynamic' in dyna) |
|
|
|
|
|
|
|
dyna = data.pop('real-ish-a') |
|
|
|
self.assertTrue('values' in dyna) |
|
|
|
# self.assertTrue('dynamic' in dyna) |
|
|
|
@ -237,10 +242,10 @@ class TestSplitYamlProvider(TestCase): |
|
|
|
|
|
|
|
# without it we see everything |
|
|
|
source.populate(zone) |
|
|
|
self.assertEquals(18, len(zone.records)) |
|
|
|
self.assertEquals(19, len(zone.records)) |
|
|
|
|
|
|
|
source.populate(dynamic_zone) |
|
|
|
self.assertEquals(5, len(dynamic_zone.records)) |
|
|
|
self.assertEquals(6, len(dynamic_zone.records)) |
|
|
|
|
|
|
|
with TemporaryDirectory() as td: |
|
|
|
# Add some subdirs to make sure that it can create them |
|
|
|
@ -251,20 +256,20 @@ class TestSplitYamlProvider(TestCase): |
|
|
|
|
|
|
|
# We add everything |
|
|
|
plan = target.plan(zone) |
|
|
|
self.assertEquals(15, len([c for c in plan.changes |
|
|
|
self.assertEquals(16, len([c for c in plan.changes |
|
|
|
if isinstance(c, Create)])) |
|
|
|
self.assertFalse(isdir(zone_dir)) |
|
|
|
|
|
|
|
# Now actually do it |
|
|
|
self.assertEquals(15, target.apply(plan)) |
|
|
|
self.assertEquals(16, target.apply(plan)) |
|
|
|
|
|
|
|
# Dynamic plan |
|
|
|
plan = target.plan(dynamic_zone) |
|
|
|
self.assertEquals(5, len([c for c in plan.changes |
|
|
|
self.assertEquals(6, len([c for c in plan.changes |
|
|
|
if isinstance(c, Create)])) |
|
|
|
self.assertFalse(isdir(dynamic_zone_dir)) |
|
|
|
# Apply it |
|
|
|
self.assertEquals(5, target.apply(plan)) |
|
|
|
self.assertEquals(6, target.apply(plan)) |
|
|
|
self.assertTrue(isdir(dynamic_zone_dir)) |
|
|
|
|
|
|
|
# There should be no changes after the round trip |
|
|
|
@ -279,7 +284,7 @@ class TestSplitYamlProvider(TestCase): |
|
|
|
|
|
|
|
# A 2nd sync should still create everything |
|
|
|
plan = target.plan(zone) |
|
|
|
self.assertEquals(15, len([c for c in plan.changes |
|
|
|
self.assertEquals(16, len([c for c in plan.changes |
|
|
|
if isinstance(c, Create)])) |
|
|
|
|
|
|
|
yaml_file = join(zone_dir, '$unit.tests.yaml') |
|
|
|
@ -302,8 +307,8 @@ class TestSplitYamlProvider(TestCase): |
|
|
|
self.assertTrue('values' in data.pop(record_name)) |
|
|
|
|
|
|
|
# These are stored as singular "value." Again, check each file. |
|
|
|
for record_name in ('aaaa', 'cname', 'included', 'ptr', 'spf', |
|
|
|
'www.sub', 'www'): |
|
|
|
for record_name in ('aaaa', 'cname', 'dname', 'included', 'ptr', |
|
|
|
'spf', 'www.sub', 'www'): |
|
|
|
yaml_file = join(zone_dir, '{}.yaml'.format(record_name)) |
|
|
|
self.assertTrue(isfile(yaml_file)) |
|
|
|
with open(yaml_file) as fh: |
|
|
|
@ -322,7 +327,7 @@ class TestSplitYamlProvider(TestCase): |
|
|
|
self.assertTrue('dynamic' in dyna) |
|
|
|
|
|
|
|
# Singular again. |
|
|
|
for record_name in ('cname', 'simple-weighted'): |
|
|
|
for record_name in ('cname', 'dname', 'simple-weighted'): |
|
|
|
yaml_file = join( |
|
|
|
dynamic_zone_dir, '{}.yaml'.format(record_name)) |
|
|
|
self.assertTrue(isfile(yaml_file)) |
|
|
|
@ -386,7 +391,7 @@ class TestOverridingYamlProvider(TestCase): |
|
|
|
# Load the base, should see the 5 records |
|
|
|
base.populate(zone) |
|
|
|
got = {r.name: r for r in zone.records} |
|
|
|
self.assertEquals(5, len(got)) |
|
|
|
self.assertEquals(6, len(got)) |
|
|
|
# We get the "dynamic" A from the bae config |
|
|
|
self.assertTrue('dynamic' in got['a'].data) |
|
|
|
# No added |
|
|
|
@ -395,7 +400,7 @@ class TestOverridingYamlProvider(TestCase): |
|
|
|
# Load the overrides, should replace one and add 1 |
|
|
|
override.populate(zone) |
|
|
|
got = {r.name: r for r in zone.records} |
|
|
|
self.assertEquals(6, len(got)) |
|
|
|
self.assertEquals(7, len(got)) |
|
|
|
# 'a' was replaced with a generic record |
|
|
|
self.assertEquals({ |
|
|
|
'ttl': 3600, |
|
|
|
|