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:
@@ -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)
|
||||
|
||||
@@ -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']))
|
||||
|
||||
Reference in New Issue
Block a user