diff --git a/tests/test_octodns_manager.py b/tests/test_octodns_manager.py index 420dfe3..bdacb08 100644 --- a/tests/test_octodns_manager.py +++ b/tests/test_octodns_manager.py @@ -737,6 +737,9 @@ class TestManager(TestCase): set(), manager.configured_sub_zones('skipped.alevel.unit.tests.') ) + # unknown zone names return empty set + self.assertEqual(set(), manager.configured_sub_zones('unknown.tests.')) + # two parallel trees, make sure they don't interfere manager.config['zones'] = { 'unit.tests.': {}, @@ -787,6 +790,47 @@ class TestManager(TestCase): self.assertEqual(set(), manager.configured_sub_zones('uunit.tests.')) self.assertEqual(set(), manager.configured_sub_zones('uuunit.tests.')) + # skipping multiple levels + manager.config['zones'] = { + 'unit.tests.': {}, + 'foo.bar.baz.unit.tests.': {}, + } + manager._configured_sub_zones = None + self.assertEqual( + {'foo.bar.baz'}, manager.configured_sub_zones('unit.tests.') + ) + self.assertEqual( + set(), manager.configured_sub_zones('foo.bar.baz.unit.tests.') + ) + + # different TLDs + manager.config['zones'] = { + 'unit.tests.': {}, + 'foo.unit.tests.': {}, + 'unit.org.': {}, + 'bar.unit.org.': {}, + } + manager._configured_sub_zones = None + self.assertEqual({'foo'}, manager.configured_sub_zones('unit.tests.')) + self.assertEqual(set(), manager.configured_sub_zones('foo.unit.tests.')) + self.assertEqual({'bar'}, manager.configured_sub_zones('unit.org.')) + self.assertEqual(set(), manager.configured_sub_zones('bar.unit.org.')) + + # starting a beyond 2 levels + manager.config['zones'] = { + 'foo.unit.tests.': {}, + 'bar.foo.unit.tests.': {}, + 'bleep.bloop.foo.unit.tests.': {}, + } + manager._configured_sub_zones = None + self.assertEqual( + {'bar', 'bleep.bloop'}, + manager.configured_sub_zones('foo.unit.tests.'), + ) + self.assertEqual( + set(), manager.configured_sub_zones('bar.foo.unit.tests.') + ) + class TestMainThreadExecutor(TestCase): def test_success(self):