Browse Source

Add formal CAA support to YamlProvider

pull/142/head
Ross McFarland 8 years ago
parent
commit
454f7f8c8f
No known key found for this signature in database GPG Key ID: 61C10C4FC8FE4A89
3 changed files with 18 additions and 14 deletions
  1. +2
    -2
      octodns/provider/yaml.py
  2. +7
    -7
      tests/test_octodns_manager.py
  3. +9
    -5
      tests/test_octodns_provider_yaml.py

+ 2
- 2
octodns/provider/yaml.py View File

@ -31,8 +31,8 @@ class YamlProvider(BaseProvider):
enforce_order: True
'''
SUPPORTS_GEO = True
SUPPORTS = set(('A', 'AAAA', 'ALIAS', 'CNAME', 'MX', 'NAPTR', 'NS', 'PTR',
'SSHFP', 'SPF', 'SRV', 'TXT'))
SUPPORTS = set(('A', 'AAAA', 'ALIAS', 'CAA', 'CNAME', 'MX', 'NAPTR', 'NS',
'PTR', 'SSHFP', 'SPF', 'SRV', 'TXT'))
def __init__(self, id, directory, default_ttl=3600, enforce_order=True,
*args, **kwargs):


+ 7
- 7
tests/test_octodns_manager.py View File

@ -102,12 +102,12 @@ class TestManager(TestCase):
environ['YAML_TMP_DIR'] = tmpdir.dirname
tc = Manager(get_config_filename('simple.yaml')) \
.sync(dry_run=False)
self.assertEquals(20, tc)
self.assertEquals(21, tc)
# try with just one of the zones
tc = Manager(get_config_filename('simple.yaml')) \
.sync(dry_run=False, eligible_zones=['unit.tests.'])
self.assertEquals(14, tc)
self.assertEquals(15, tc)
# the subzone, with 2 targets
tc = Manager(get_config_filename('simple.yaml')) \
@ -122,18 +122,18 @@ class TestManager(TestCase):
# Again with force
tc = Manager(get_config_filename('simple.yaml')) \
.sync(dry_run=False, force=True)
self.assertEquals(20, tc)
self.assertEquals(21, tc)
# Again with max_workers = 1
tc = Manager(get_config_filename('simple.yaml'), max_workers=1) \
.sync(dry_run=False, force=True)
self.assertEquals(20, tc)
self.assertEquals(21, tc)
# Include meta
tc = Manager(get_config_filename('simple.yaml'), max_workers=1,
include_meta=True) \
.sync(dry_run=False, force=True)
self.assertEquals(24, tc)
self.assertEquals(25, tc)
def test_eligible_targets(self):
with TemporaryDirectory() as tmpdir:
@ -159,13 +159,13 @@ class TestManager(TestCase):
fh.write('---\n{}')
changes = manager.compare(['in'], ['dump'], 'unit.tests.')
self.assertEquals(14, len(changes))
self.assertEquals(15, len(changes))
# Compound sources with varying support
changes = manager.compare(['in', 'nosshfp'],
['dump'],
'unit.tests.')
self.assertEquals(13, len(changes))
self.assertEquals(14, len(changes))
with self.assertRaises(Exception) as ctx:
manager.compare(['nope'], ['dump'], 'unit.tests.')


+ 9
- 5
tests/test_octodns_provider_yaml.py View File

@ -49,12 +49,12 @@ class TestYamlProvider(TestCase):
# We add everything
plan = target.plan(zone)
self.assertEquals(14, len(filter(lambda c: isinstance(c, Create),
self.assertEquals(15, len(filter(lambda c: isinstance(c, Create),
plan.changes)))
self.assertFalse(isfile(yaml_file))
# Now actually do it
self.assertEquals(14, target.apply(plan))
self.assertEquals(15, target.apply(plan))
self.assertTrue(isfile(yaml_file))
# There should be no changes after the round trip
@ -64,15 +64,19 @@ class TestYamlProvider(TestCase):
# A 2nd sync should still create everything
plan = target.plan(zone)
self.assertEquals(14, len(filter(lambda c: isinstance(c, Create),
self.assertEquals(15, len(filter(lambda c: isinstance(c, Create),
plan.changes)))
with open(yaml_file) as fh:
data = safe_load(fh.read())
# '' has some of both
roots = sorted(data[''], key=lambda r: r['type'])
self.assertTrue('values' in roots[0]) # A
self.assertTrue('value' in roots[1]) # CAA
self.assertTrue('values' in roots[2]) # SSHFP
# these are stored as plural 'values'
for r in data['']:
self.assertTrue('values' in r)
self.assertTrue('values' in data['mx'])
self.assertTrue('values' in data['naptr'])
self.assertTrue('values' in data['_srv._tcp'])


Loading…
Cancel
Save