#!/usr/bin/env python3 """Regression tests for fail-closed JUnit evidence verification.""" from pathlib import Path import subprocess import sys import tempfile import unittest VERIFIER = Path(__file__).with_name("verify-test-results.py") class EvidenceVerifierTests(unittest.TestCase): def verify(self, xml=None, minimum=1): with tempfile.TemporaryDirectory(prefix="yuvomi-evidence-") as temporary: if xml is not None: (Path(temporary) / "TEST-fixture.xml").write_text(xml) return subprocess.run( [sys.executable, str(VERIFIER), temporary, "--minimum", str(minimum)], capture_output=True, text=True, ).returncode def test_missing_reports_fail(self): self.assertNotEqual(self.verify(), 0) def test_empty_reports_fail(self): self.assertNotEqual(self.verify(""), 0) def test_malformed_reports_fail(self): self.assertNotEqual(self.verify(""), 0) def test_failed_cases_fail(self): self.assertNotEqual(self.verify(""), 0) def test_errored_cases_fail(self): self.assertNotEqual(self.verify(""), 0) def test_skipped_cases_fail(self): self.assertNotEqual(self.verify(""), 0) def test_insufficient_cases_fail(self): self.assertNotEqual(self.verify("", minimum=2), 0) def test_passing_cases_succeed(self): self.assertEqual(self.verify(""), 0) if __name__ == "__main__": unittest.main()