From 0cd4bd3e4ad93a1d49a9dc321719f012c440ce6d Mon Sep 17 00:00:00 2001 From: kclamano Date: Wed, 14 Oct 2026 22:56:46 +0800 Subject: [PATCH] test(evaluators): cover IsEmpty and IsNotEmpty on 0, False and whitespace Add 0, False, ' ', and {'a': None} to parametrized cases in test_is_empty.py and test_is_not_empty.py to pin evaluator behavior on falsy non-empty values. Closes #407 Signed-off-by: kclamano --- tests/core/evaluators/test_is_empty.py | 4 ++-- tests/core/evaluators/test_is_not_empty.py | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/tests/core/evaluators/test_is_empty.py b/tests/core/evaluators/test_is_empty.py index 0cd2149d..7b1ac2de 100644 --- a/tests/core/evaluators/test_is_empty.py +++ b/tests/core/evaluators/test_is_empty.py @@ -3,7 +3,7 @@ from tirith.utils import json_format_value checks_passing = ("", None, [], dict()) -checks_failing = ("stackguardian", 1, [None], dict(a=1)) +checks_failing = ("stackguardian", 1, [None], dict(a=1), 0, False, " ", {"a": None}) evaluator = IsEmpty() @@ -15,7 +15,7 @@ def test_evaluate_passing(evaluator_input): assert result == {"message": f"{json_format_value(evaluator_input)} is empty", "passed": True} -@mark.passing +@mark.failing @mark.parametrize("evaluator_input", checks_failing) def test_evaluate_failing(evaluator_input): result = evaluator.evaluate(evaluator_input) diff --git a/tests/core/evaluators/test_is_not_empty.py b/tests/core/evaluators/test_is_not_empty.py index c77666f4..80ce2b53 100644 --- a/tests/core/evaluators/test_is_not_empty.py +++ b/tests/core/evaluators/test_is_not_empty.py @@ -2,21 +2,23 @@ from pytest import mark from tirith.utils import json_format_value -evaluator_input1 = "abc" -evaluator_input2 = "" +checks_passing = ("abc", " ", {"a": None}) +checks_failing = ("", 0, False) evaluator = IsNotEmpty() # pytest -v -m passing @mark.passing -def test_evaluate_passing(): - result = evaluator.evaluate(evaluator_input1) - assert result == {"passed": True, "message": f"{json_format_value(evaluator_input1)} is not empty"} +@mark.parametrize("evaluator_input", checks_passing) +def test_evaluate_passing(evaluator_input): + result = evaluator.evaluate(evaluator_input) + assert result == {"passed": True, "message": f"{json_format_value(evaluator_input)} is not empty"} -# pytest -v -m passing +# pytest -v -m failing @mark.failing -def test_evaluate_passing(): - result = evaluator.evaluate(evaluator_input2) - assert result == {"passed": False, "message": f"{json_format_value(evaluator_input2)} is empty"} +@mark.parametrize("evaluator_input", checks_failing) +def test_evaluate_failing(evaluator_input): + result = evaluator.evaluate(evaluator_input) + assert result == {"passed": False, "message": f"{json_format_value(evaluator_input)} is empty"}