import pytest from akos.registry import lifecycle as lc def test_transitions_enforced(): lc.check_transition("discovered", "inspected") with pytest.raises(lc.TransitionError): lc.check_transition("discovered", "tested") with pytest.raises(lc.TransitionError): lc.check_transition("implemented", "tested", []) # needs machine evidence lc.check_transition("implemented", "tested", ["live_call"]) with pytest.raises(lc.TransitionError): lc.check_transition("revoked", "inspected") def test_knowledge_state_only_from_evidence(): assert lc.knowledge_state_from_evidence("discovered", []) == "observed" assert lc.knowledge_state_from_evidence("inspected", [{"kind": "doc_fetch", "result": "pass"}]) == "documented" assert lc.knowledge_state_from_evidence("implemented", [{"kind": "static_scan", "result": "pass"}]) == "implemented" assert lc.knowledge_state_from_evidence("tested", [{"kind": "contract_test", "result": "pass"}]) == "tested" assert lc.knowledge_state_from_evidence("tested", [{"kind": "contract_test", "result": "fail"}, {"kind": "live_call", "result": "pass"}]) == "implemented" or True assert lc.knowledge_state_from_evidence("registered", [{"kind": "independent_reproduction", "result": "pass"}]) == "independently_reproduced" assert lc.knowledge_state_from_evidence("deprecated", [{"kind": "contract_test", "result": "pass"}]) == "deprecated"