1
0
mirror of https://github.com/github/octodns.git synced 2024-05-11 05:55:00 +00:00

handle a couple zone.owns edge cases

This commit is contained in:
Ross McFarland
2023-06-30 14:59:09 -07:00
parent 49233e2da6
commit 4a7df31445
2 changed files with 12 additions and 2 deletions

View File

@@ -79,8 +79,12 @@ class Zone(object):
if fqdn[-1] != '.':
fqdn = f'{fqdn}.'
# if we don't end with the zone's name we aren't owned by it
if not fqdn.endswith(self.name):
# if we exactly match the zone name we own it
if fqdn == self.name:
return True
# if we don't end with the zone's name on a boundary we aren't owned
if not fqdn.endswith(f'.{self.name}'):
return False
hostname = self.hostname_from_fqdn(fqdn)

View File

@@ -210,6 +210,12 @@ class TestZone(TestCase):
# including subsequent delegatoin NS records
self.assertFalse(zone.owns('NS', 'below.sub.unit.tests.'))
# edge cases
# we don't own something that ends with our name, but isn't a boundary
self.assertFalse(zone.owns('A', 'foo-unit.tests.'))
# we do something that ends with the sub-zone, but isn't at a boundary
self.assertTrue(zone.owns('A', 'foo-sub.unit.tests.'))
def test_sub_zones(self):
# NS for exactly the sub is allowed
zone = Zone('unit.tests.', set(['sub', 'barred']))