"""U-035 tests: path-based core_engine classification. Run: python3 -m unittest src.test_core_engine_classify -v """ import unittest from src import core_engine_classify class ClassifyCoreEngineChangeTest(unittest.TestCase): def test_src_python_file_is_core_engine(self): self.assertTrue(core_engine_classify.classify_core_engine_change(["src/scheduler.py"])) def test_claude_agents_identity_file_is_core_engine(self): self.assertTrue( core_engine_classify.classify_core_engine_change([".claude/agents/coder.md"]) ) def test_supervisor_module_is_core_engine(self): self.assertTrue( core_engine_classify.classify_core_engine_change(["supervisor/isolation/change_manifest.py"]) ) def test_frontend_only_change_is_not_core_engine(self): self.assertFalse(core_engine_classify.classify_core_engine_change(["frontend/app.js"])) def test_docs_only_change_is_not_core_engine(self): self.assertFalse(core_engine_classify.classify_core_engine_change(["docs/development-plan.md"])) def test_mixed_changeset_with_one_core_engine_file_is_core_engine(self): self.assertTrue( core_engine_classify.classify_core_engine_change(["frontend/app.js", "src/e2e_pipeline.py"]) ) def test_empty_changeset_is_not_core_engine(self): self.assertFalse(core_engine_classify.classify_core_engine_change([])) def test_windows_style_separators_normalized(self): self.assertTrue(core_engine_classify.classify_core_engine_change(["src\\scheduler.py"])) class ParseChangedFilesFromDiffTest(unittest.TestCase): def test_single_file_diff(self): diff_text = ( "diff --git a/src/scheduler.py b/src/scheduler.py\n" "index abc123..def456 100644\n" "--- a/src/scheduler.py\n" "+++ b/src/scheduler.py\n" "@@ -1,3 +1,3 @@\n" "-old\n" "+new\n" ) self.assertEqual( core_engine_classify.parse_changed_files_from_diff(diff_text), ["src/scheduler.py"] ) def test_multiple_files_diff(self): diff_text = ( "diff --git a/src/scheduler.py b/src/scheduler.py\n" "--- a/src/scheduler.py\n" "+++ b/src/scheduler.py\n" "@@ -1,1 +1,1 @@\n" "-a\n" "+b\n" "diff --git a/frontend/app.js b/frontend/app.js\n" "--- a/frontend/app.js\n" "+++ b/frontend/app.js\n" "@@ -1,1 +1,1 @@\n" "-a\n" "+b\n" ) self.assertEqual( core_engine_classify.parse_changed_files_from_diff(diff_text), ["src/scheduler.py", "frontend/app.js"], ) def test_empty_diff_returns_empty_list(self): self.assertEqual(core_engine_classify.parse_changed_files_from_diff(""), []) def test_none_diff_returns_empty_list(self): self.assertEqual(core_engine_classify.parse_changed_files_from_diff(None), []) if __name__ == "__main__": unittest.main()