test_api_freeze_review_cycle.py python
57 lines 1.7 KB
Raw
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 20 hours ago
1 """E2E cycle for headless API freeze review (K11)."""
2
3 from __future__ import annotations
4
5 import json
6 from pathlib import Path
7
8 from cli.kit_root import kit_root
9 from tests.support import (
10 FakeHttpTransport,
11 api_provider_factory,
12 git_status_runner,
13 run_cli,
14 seed_freeze_repo,
15 )
16
17
18 def test_api_freeze_review_cycle_dry_run_then_stamp(tmp_path: Path, monkeypatch) -> None:
19 monkeypatch.setenv("OVERSEER_REVIEW_API_KEY", "ci-key")
20 monkeypatch.setenv("OVERSEER_REVIEW_API_URL", "https://review.example.com/v1")
21 artifact = seed_freeze_repo(tmp_path, config_name="config-api-reviewer.yaml")
22 rel = artifact.relative_to(tmp_path).as_posix()
23 transport = FakeHttpTransport(review_body=json.dumps({"findings": []}).encode("utf-8"))
24
25 dry_code = run_cli(
26 ["review", "--freeze", rel, "--dry-run", "--json"],
27 cwd=tmp_path,
28 runner=git_status_runner(),
29 kit=kit_root(),
30 review_provider_factory=api_provider_factory(transport),
31 json_mode=True,
32 )
33 assert dry_code == 0
34 before = artifact.read_bytes()
35
36 pass_code = run_cli(
37 ["review", "--freeze", rel, "--json"],
38 cwd=tmp_path,
39 runner=git_status_runner(),
40 kit=kit_root(),
41 review_provider_factory=api_provider_factory(transport),
42 json_mode=True,
43 )
44 assert pass_code == 0
45 after_first = artifact.read_bytes()
46 assert after_first != before
47
48 second_code = run_cli(
49 ["review", "--freeze", rel, "--json"],
50 cwd=tmp_path,
51 runner=git_status_runner(),
52 kit=kit_root(),
53 review_provider_factory=api_provider_factory(transport),
54 json_mode=True,
55 )
56 assert second_code == 0
57 assert artifact.read_bytes() == after_first
File History 2 commits
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 20 hours ago
sha256:4671b7f787ddbe63ced31c895b688c77ab495653b65a730b423329f26b3c1439 feat: K1-P1 complete — agent provenance, build-verification… Sonnet 4.6 patch 52 days ago