gitea-saas-core/tests
Claude d8faabf2e5 gitea-saas-core#30: isolated synthetic-merge review workspace
Review gate: replaces the arbitrary repo_dir test target with a
review_workspace seam that builds a clean temporary git worktree from
the configured clone, fetches the exact base/head SHAs, and constructs
a real synthetic merge of the reviewed head onto the reviewed base.
Verdicts pin repo, PR, head SHA, and base SHA; tests + git diff --check
run inside the workspace with an explicit base..HEAD range; a merge
conflict yields a deterministic BOUNCE with conflicted-file evidence and
the suite is never run against a fallback checkout; no workspace
configured fails closed to NEEDS_GUIDANCE. Worktrees/refs are cleaned up
on success, conflict, timeout, and exceptions; the configured clone and
worker issue worktrees are never mutated.

Policy: before applying any verdict the PR is re-read and the verdict is
refused (outcome=stale/PAIR_MOVED, zero side effects) if the head OR
base moved after evaluation — the new pair stays eligible for a fresh
review. Client: normalized PR shape gains base_sha (REVIEW_CLONE_DIR is
the new config knob). Hermetic tests build local temp repos proving
clean merge, conflict, moved head/base, no shared-checkout mutation,
correct command cwd/range, and cleanup on failure (no network).
2026-08-29 15:21:43 -05:00
..
test_billing_core.py gitea-saas-core#16: billing core client API consistency (id, flat records, list_clients) 2026-08-25 06:09:46 -05:00
test_dashboard.py tests(#9): make the no-second-server guard survive #2 merging 2026-08-26 02:18:32 -05:00
test_delivery.py gitea-saas-core#7: adopt #16 core shape (create_client id key, flat get_client) 2026-08-25 11:20:55 -05:00
test_gitea_client.py gitea-saas-core#30: isolated synthetic-merge review workspace 2026-08-29 15:21:43 -05:00
test_intake_eval.py gitea-saas-core#8: drop gitea_client.py per bounce — issue #4 owns it (via !21/!23); keep real-client skip-guard 2026-08-25 16:18:38 -05:00
test_intake_factory.py gitea-saas-core#4: adapt to billing core client id rename (#16) after rebase 2026-08-25 11:15:40 -05:00
test_review_policy.py gitea-saas-core#30: isolated synthetic-merge review workspace 2026-08-29 15:21:43 -05:00
test_review_workspace.py gitea-saas-core#30: isolated synthetic-merge review workspace 2026-08-29 15:21:43 -05:00
test_reviewer.py gitea-saas-core#30: isolated synthetic-merge review workspace 2026-08-29 15:21:43 -05:00
test_server.py Merge remote-tracking branch 'origin/main' into issue-2 2026-08-25 06:29:19 -05:00
test_stripe_client.py gitea-saas-core#3: tests: read create_client id key (bounce fix attempt 2, #16 rename) 2026-08-25 10:59:56 -05:00