From d17e11f2bcd4f07e6cd2db29f7c68a0aa5bce843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kucharczyk?= Date: Wed, 10 Jun 2026 17:50:37 +0200 Subject: [PATCH] test: add comprehensive unit tests for all 8 string criterion modifiers --- tests/test_filters.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/test_filters.py b/tests/test_filters.py index 38183df..e358746 100644 --- a/tests/test_filters.py +++ b/tests/test_filters.py @@ -38,10 +38,34 @@ class TestStringCriterion: c = StringCriterion(value="zelda", modifier=Modifier.EQUALS) assert c.to_q("name") == Q(name="zelda") + def test_not_equals(self): + c = StringCriterion(value="zelda", modifier=Modifier.NOT_EQUALS) + assert c.to_q("name") == ~Q(name="zelda") + + def test_includes(self): + c = StringCriterion(value="zelda", modifier=Modifier.INCLUDES) + assert c.to_q("name") == Q(name__icontains="zelda") + + def test_excludes(self): + c = StringCriterion(value="zelda", modifier=Modifier.EXCLUDES) + assert c.to_q("name") == ~Q(name__icontains="zelda") + + def test_matches_regex(self): + c = StringCriterion(value="zelda", modifier=Modifier.MATCHES_REGEX) + assert c.to_q("name") == Q(name__regex="zelda") + + def test_not_matches_regex(self): + c = StringCriterion(value="zelda", modifier=Modifier.NOT_MATCHES_REGEX) + assert c.to_q("name") == ~Q(name__regex="zelda") + def test_is_null(self): c = StringCriterion(value="", modifier=Modifier.IS_NULL) assert c.to_q("name") == Q(name__isnull=True) + def test_not_null(self): + c = StringCriterion(value="", modifier=Modifier.NOT_NULL) + assert c.to_q("name") == Q(name__isnull=False) + class TestIntCriterion: def test_between(self):