Make blacklist override whitelist
All checks were successful
Test and build Docker image / docker (push) Successful in 30s

Change filter evaluation so blacklist matches take precedence over whitelist matches. Updated evaluator logic to skip entries when blacklist and whitelist both match, adjusted related branches to reflect the new decision flow, and updated a feeds.py comment to clarify the combined decision. Also updated blacklist/whitelist templates copy to reflect the new precedence and adjusted tests to expect blacklist-wins behavior.
This commit is contained in:
Joakim Hellsén 2026-05-04 22:55:53 +02:00
commit d85bc16904
Signed by: Joakim Hellsén
SSH key fingerprint: SHA256:/9h/CsExpFp+PRhsfA0xznFx2CGfTT5R/kpuFfUgEQk
7 changed files with 24 additions and 34 deletions

View file

@ -207,8 +207,8 @@ def test_regex_should_be_skipped() -> None:
assert entry_should_be_skipped(reader, first_entry[0]) is False, f"Entry should not be skipped: {first_entry[0]}"
def test_whitelist_match_overrides_blacklist_match() -> None:
"""A whitelist hit should beat a blacklist hit in the final decision."""
def test_blacklist_match_overrides_whitelist_match() -> None:
"""A blacklist hit should beat a whitelist hit in the final decision."""
reader: Reader = get_reader()
reader.add_feed(feed_url)
@ -232,10 +232,10 @@ def test_whitelist_match_overrides_blacklist_match() -> None:
whitelist_values=get_filter_values_from_reader(reader, feed, "whitelist"),
)
assert decision.should_send is True, "Whitelist match should override blacklist match"
assert decision.should_send is False, "Blacklist match should override whitelist match"
assert decision.blacklist_match is not None, "Expected a blacklist match"
assert decision.whitelist_match is not None, "Expected a whitelist match"
assert "whitelist overrides blacklist" in decision.reason
assert "blacklist overrides whitelist" in decision.reason
def test_blacklist_substring_match_on_title() -> None: