From 6cfd53c9cbff04ec1dbe6e80522c9c2cd839bc37 Mon Sep 17 00:00:00 2001 From: Alex Ward Date: Mon, 13 Apr 2026 15:28:10 +0100 Subject: [PATCH 1/3] fix issue with EvalItem.reportinfo() causing pytest error Co-Authored-By: Claude --- src/pyeval/plugin.py | 4 +++- tests/evals/eval_skipif.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 tests/evals/eval_skipif.py diff --git a/src/pyeval/plugin.py b/src/pyeval/plugin.py index 784f138..429e1c1 100644 --- a/src/pyeval/plugin.py +++ b/src/pyeval/plugin.py @@ -212,4 +212,6 @@ def runtest(self): def reportinfo(self): parent_name = f"{self.parent.name}:" if self.parent is not None else "" - return self.fspath, None, f"{parent_name}{self.name}" + # 0 is the pytest convention for synthetic items with no source line — + # see https://docs.pytest.org/en/stable/example/nonpython.html + return self.fspath, 0, f"{parent_name}{self.name}" diff --git a/tests/evals/eval_skipif.py b/tests/evals/eval_skipif.py new file mode 100644 index 0000000..4a34022 --- /dev/null +++ b/tests/evals/eval_skipif.py @@ -0,0 +1,14 @@ +"""Regression test: pytestmark skipif must not cause INTERNALERROR.""" + +import pytest + +from pyeval import Case, dataset, execute + +pytestmark = pytest.mark.skipif(True, reason="always skipped — tests that EvalItem handles pytestmark skipif without INTERNALERROR") + + +@dataset( + Case(name="skipped_case", inputs="hello", expected_output="hello"), +) +def eval_skipif_regression(case): + result = execute(lambda x: x, case) From 42f74259c3d689883b7003db21b598d394f24754 Mon Sep 17 00:00:00 2001 From: Alex Ward Date: Mon, 13 Apr 2026 15:33:38 +0100 Subject: [PATCH 2/3] format --- tests/evals/eval_skipif.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/evals/eval_skipif.py b/tests/evals/eval_skipif.py index 4a34022..1f787d6 100644 --- a/tests/evals/eval_skipif.py +++ b/tests/evals/eval_skipif.py @@ -4,7 +4,10 @@ from pyeval import Case, dataset, execute -pytestmark = pytest.mark.skipif(True, reason="always skipped — tests that EvalItem handles pytestmark skipif without INTERNALERROR") +pytestmark = pytest.mark.skipif( + True, + reason="always skipped — tests that EvalItem handles pytestmark skipif without INTERNALERROR", +) @dataset( From da02adb65b8bb17cbd9e7f41fbf29e3d9dae3004 Mon Sep 17 00:00:00 2001 From: Alex Ward Date: Mon, 13 Apr 2026 15:38:45 +0100 Subject: [PATCH 3/3] lint --- tests/evals/eval_skipif.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/evals/eval_skipif.py b/tests/evals/eval_skipif.py index 1f787d6..c0a1689 100644 --- a/tests/evals/eval_skipif.py +++ b/tests/evals/eval_skipif.py @@ -14,4 +14,4 @@ Case(name="skipped_case", inputs="hello", expected_output="hello"), ) def eval_skipif_regression(case): - result = execute(lambda x: x, case) + execute(lambda x: x, case)