from __future__ import annotations import sys import unittest from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent)) import domain_truth_harness as dth class DomainTruthHarnessTests(unittest.TestCase): def test_required_organization_filter_accepts_quoted_legal_name(self) -> None: step = dth.normalize_step_spec( 1, { "step_id": "step_01", "title": "Inventory root", "question_template": "что там на складе по остаткам", "required_filters": {"organization": "ООО Альтернатива Плюс"}, }, ) reviewed = dth.evaluate_truth_step( step=step, step_state={ "question_resolved": "что там на складе по остаткам", "reply_type": "factual", "assistant_text": "На складе подтверждено 11 позиций.", "extracted_filters": {"organization": 'ООО "Альтернатива Плюс"'}, }, step_results={}, bindings={}, runtime_bindings={}, ) self.assertEqual(reviewed["review_status"], "pass") self.assertFalse( [ finding for finding in reviewed["review_findings"] if finding.get("code") == "wrong_filter:organization" ] ) def test_forbidden_organization_filter_matches_quoted_legal_name(self) -> None: step = dth.normalize_step_spec( 1, { "step_id": "step_01", "title": "Wrong organization scope", "question_template": "что там на складе по остаткам", "forbidden_filter_values": {"organization": ["ООО Альтернатива Плюс"]}, }, ) reviewed = dth.evaluate_truth_step( step=step, step_state={ "question_resolved": "что там на складе по остаткам", "reply_type": "factual", "assistant_text": "На складе подтверждено 11 позиций.", "extracted_filters": {"organization": 'ООО "Альтернатива Плюс"'}, }, step_results={}, bindings={}, runtime_bindings={}, ) self.assertEqual(reviewed["review_status"], "fail") self.assertTrue( [ finding for finding in reviewed["review_findings"] if finding.get("code") == "forbidden_filter_value:organization" ] ) if __name__ == "__main__": unittest.main()