From cb01f041c19bba05ac695e9fcdd5b295d2ed7d34 Mon Sep 17 00:00:00 2001 From: Mathurin Gagnon Date: Fri, 25 Apr 2025 16:09:09 -0700 Subject: [PATCH] updated tests and filter to cover all new code changes in value filter reject and allow --- octodns/processor/filter.py | 1 + tests/test_octodns_processor_filter.py | 30 +++++++++++++++++++------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/octodns/processor/filter.py b/octodns/processor/filter.py index 0ac152f..8b15682 100644 --- a/octodns/processor/filter.py +++ b/octodns/processor/filter.py @@ -283,6 +283,7 @@ class ValueAllowlistFilter(_ValueBaseFilter, AllowsMixin): ''' def __init__(self, name, allowlist): + self.log = getLogger(f'ValueAllowlistFilter[{name}]') super().__init__(name, allowlist) diff --git a/tests/test_octodns_processor_filter.py b/tests/test_octodns_processor_filter.py index 29e1ece..9028804 100644 --- a/tests/test_octodns_processor_filter.py +++ b/tests/test_octodns_processor_filter.py @@ -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]), )