Browse Source

updated tests and filter to cover all new code changes in value filter reject and allow

pull/1246/head
Mathurin Gagnon 8 months ago
parent
commit
cb01f041c1
No known key found for this signature in database GPG Key ID: C2FA638E0A56DB06
2 changed files with 23 additions and 8 deletions
  1. +1
    -0
      octodns/processor/filter.py
  2. +22
    -8
      tests/test_octodns_processor_filter.py

+ 1
- 0
octodns/processor/filter.py View File

@ -283,6 +283,7 @@ class ValueAllowlistFilter(_ValueBaseFilter, AllowsMixin):
'''
def __init__(self, name, allowlist):
self.log = getLogger(f'ValueAllowlistFilter[{name}]')
super().__init__(name, allowlist)


+ 22
- 8
tests/test_octodns_processor_filter.py View File

@ -227,11 +227,18 @@ class TestValueAllowListFilter(TestCase):
{'type': 'CNAME', 'ttl': 42, 'value': 'start.a3b444c.end.'},
)
zone.add_record(matchable2)
empty_val = Record.new(
zone,
'no.values',
{'type': 'CNAME', 'ttl': 42, 'value': None},
lenient=True,
)
zone.add_record(empty_val)
def test_exact(self):
allows = ValueAllowlistFilter('exact', ('matches.example.com.',))
self.assertEqual(6, len(self.zone.records))
self.assertEqual(7, len(self.zone.records))
filtered = allows.process_source_zone(self.zone.copy())
self.assertEqual(2, len(filtered.records))
self.assertEqual(
@ -242,7 +249,7 @@ class TestValueAllowListFilter(TestCase):
def test_regex(self):
allows = ValueAllowlistFilter('exact', ('/^start\\..+\\.end\\.$/',))
self.assertEqual(6, len(self.zone.records))
self.assertEqual(7, len(self.zone.records))
filtered = allows.process_source_zone(self.zone.copy())
self.assertEqual(2, len(filtered.records))
self.assertEqual(
@ -297,26 +304,33 @@ class TestValueRejectListFilter(TestCase):
{'type': 'CNAME', 'ttl': 42, 'value': 'start.a3b444c.end.'},
)
zone.add_record(matchable2)
empty_val = Record.new(
zone,
'no.values',
{'type': 'CNAME', 'ttl': 42, 'value': None},
lenient=True,
)
zone.add_record(empty_val)
def test_exact(self):
rejects = ValueRejectlistFilter('exact', ('matches.example.com.',))
self.assertEqual(6, len(self.zone.records))
self.assertEqual(7, len(self.zone.records))
filtered = rejects.process_source_zone(self.zone.copy())
self.assertEqual(4, len(filtered.records))
self.assertEqual(5, len(filtered.records))
self.assertEqual(
['bad.compare', 'bad.values', 'first.regex', 'second.regex'],
['bad.compare', 'bad.values', 'first.regex', 'no.values', 'second.regex'],
sorted([r.name for r in filtered.records]),
)
def test_regex(self):
rejects = ValueRejectlistFilter('exact', ('/^start\\..+\\.end\\.$/',))
self.assertEqual(6, len(self.zone.records))
self.assertEqual(7, len(self.zone.records))
filtered = rejects.process_source_zone(self.zone.copy())
self.assertEqual(4, len(filtered.records))
self.assertEqual(5, len(filtered.records))
self.assertEqual(
['bad.compare', 'bad.values', 'good.compare', 'good.values'],
['bad.compare', 'bad.values', 'good.compare', 'good.values', 'no.values'],
sorted([r.name for r in filtered.records]),
)


Loading…
Cancel
Save