"""Unit tests for own-branch lock adoption decision (#442 / #443).""" import sys import unittest from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) from issue_lock_adoption import ( # noqa: E402 ADOPT, BLOCK_COMPETING, NO_MATCH, assess_own_branch_adoption, build_adoption_proof, ) REQ = "feat/issue-420-server-code-parity" class TestAssessOwnBranchAdoption(unittest.TestCase): def test_exact_own_branch_is_adopted(self): result = assess_own_branch_adoption( issue_number=420, requested_branch=REQ, existing_branches=[{"name": REQ, "commit_sha": "934688a"}], ) self.assertEqual(result["outcome"], ADOPT) self.assertTrue(result["adopt"]) def test_different_branch_same_issue_blocks(self): result = assess_own_branch_adoption( issue_number=420, requested_branch=REQ, existing_branches=[{"name": "feat/issue-420-other-work"}], ) self.assertEqual(result["outcome"], BLOCK_COMPETING) self.assertTrue(result["block"]) def test_no_matching_branch_is_normal_path(self): result = assess_own_branch_adoption( issue_number=420, requested_branch=REQ, existing_branches=[{"name": "feat/issue-999-unrelated"}], ) self.assertEqual(result["outcome"], NO_MATCH) class TestBuildAdoptionProof(unittest.TestCase): def test_proof_has_required_fields(self): assessment = assess_own_branch_adoption( issue_number=420, requested_branch=REQ, existing_branches=[{"name": REQ, "commit_sha": "934688a"}], ) proof = build_adoption_proof( issue_number=420, branch_name=REQ, assessment=assessment, open_pr_checked=True, competing_lock_checked=True, lock_file_path="/tmp/example-lock.json", lock_file_status="written", ) self.assertEqual(proof["branch_head_commit"], "934688a") self.assertTrue(proof["no_existing_pr_proof"]) if __name__ == "__main__": unittest.main()