from __future__ import annotations import importlib.util import unittest from pathlib import Path MODULE_PATH = Path(__file__).with_name("orca-nono-profile.py") SPEC = importlib.util.spec_from_file_location("orca_nono_profile", MODULE_PATH) if SPEC is None or SPEC.loader is None: raise RuntimeError(f"Could not load runner resolver from {MODULE_PATH}") MODULE = importlib.util.module_from_spec(SPEC) SPEC.loader.exec_module(MODULE) class ResolveProfileTests(unittest.TestCase): def setUp(self) -> None: self.mapping = { "defaultProfile": "pi-orca-local", "projectRoots": { "/srv/work": "pi-work", "/srv/work/special": "pi-special", }, "projects": { "/srv/work/special/override": "pi-override", }, } def test_exact_project_mapping_wins(self) -> None: self.assertEqual( MODULE.resolve_profile(self.mapping, Path("/srv/work/special/override")), ("pi-override", "project"), ) def test_longest_project_root_wins(self) -> None: self.assertEqual( MODULE.resolve_profile(self.mapping, Path("/srv/work/special/repository")), ("pi-special", "project-root"), ) def test_project_root_matches_descendants(self) -> None: self.assertEqual( MODULE.resolve_profile(self.mapping, Path("/srv/work/code/repository")), ("pi-work", "project-root"), ) def test_linked_worktree_uses_its_launch_path_root(self) -> None: self.assertEqual( MODULE.resolve_profile( self.mapping, Path("/home/jb/code/main-checkout"), Path("/srv/work/worktrees/feature"), ), ("pi-work", "project-root"), ) def test_project_root_does_not_match_similar_prefix(self) -> None: self.assertEqual( MODULE.resolve_profile(self.mapping, Path("/srv/worker/repository")), ("pi-orca-local", "default"), ) if __name__ == "__main__": unittest.main()