gabriel / musehub public
test_overseer_provenance_f7.py python
65 lines 2.2 KB
Raw
sha256:42bc547653458bb15e283222247af0237872d9cb5c2a72ad2ca1c111ed2c0ca4 feat(9A-4 F7): overseer-run provenance enrichment API for S… Human minor ⚠ breaking 8 days ago
1 """Unit tests — Phase 9A-4 F7 overseer-run provenance enrichment (issue #144)."""
2
3 from __future__ import annotations
4
5 import pytest
6
7 from musehub.services import musehub_overseer_provenance as enrichment
8
9
10 def test_fixture_run_ref_returns_content_free_envelope() -> None:
11 payload = enrichment.get_overseer_run_provenance("flow_run:fixture-overseer-001")
12
13 assert payload is not None
14 assert payload["schema"] == "musehub.overseer_run_provenance_envelope/v0"
15 record = payload["record"]
16 assert record["runRef"] == "flow_run:fixture-overseer-001"
17 assert record["reviewTrayOutcomeRef"] == "outcome:flow_run:fixture-overseer-001"
18 assert record["outcome"] == "pass"
19 assert record["untrusted"] is True
20 # content-free: no prompt/body fields
21 assert "prompt" not in record
22 assert "completion" not in record
23
24
25 def test_unknown_run_ref_returns_none() -> None:
26 assert enrichment.get_overseer_run_provenance("flow_run:missing-run") is None
27
28
29 def test_invalid_run_ref_returns_none() -> None:
30 assert enrichment.get_overseer_run_provenance("not-a-run-ref") is None
31
32
33 def test_gate_off_when_env_disabled(monkeypatch: pytest.MonkeyPatch) -> None:
34 monkeypatch.setattr(
35 enrichment.settings,
36 "musehub_overseer_provenance_enrichment_enabled",
37 "disabled",
38 )
39 assert enrichment.is_overseer_provenance_enrichment_enabled() is False
40
41
42 def test_gate_on_when_env_enabled(monkeypatch: pytest.MonkeyPatch) -> None:
43 monkeypatch.setattr(
44 enrichment.settings,
45 "musehub_overseer_provenance_enrichment_enabled",
46 "enabled",
47 )
48 assert enrichment.is_overseer_provenance_enrichment_enabled() is True
49
50
51 def test_seed_rejects_invalid_record() -> None:
52 bad = enrichment.OverseerRunProvenanceRecord(
53 run_ref="bad ref with spaces",
54 review_tray_outcome_ref="outcome:bad",
55 outcome="pass",
56 constitution_version="0.1.0",
57 agent_version_ref="agent:x",
58 worker_model_family="family:ollama",
59 checker_model_family="family:llama_cpp",
60 external_ref=None,
61 actor_hash="a" * 64,
62 produced_at="2026-07-09T12:00:00Z",
63 )
64 with pytest.raises(ValueError, match="provenance_record_invalid"):
65 enrichment.seed_overseer_provenance_record(bad)
File History 1 commit
sha256:42bc547653458bb15e283222247af0237872d9cb5c2a72ad2ca1c111ed2c0ca4 feat(9A-4 F7): overseer-run provenance enrichment API for S… Human minor 8 days ago