2.7 KiB
2.7 KiB
AC-0037 Test Report
- 실행 시각: 2026-09-13T21:53:39+09:00
- 기준 Git HEAD:
c7d8235bdebfa8c2459b0b3300d8ed40a9f465e5 - 검증 대상: 위 HEAD의
fix/issue-19-corporate-action-readsworking-tree diff - 실제 backend:
timescale/timescaledb-ha:pg17(docker-compose.local-test.yml, PostgreSQL DSN은 기록하지 않음) - 결과: PASS
AC mapping
- Joined projection·metadata mapping·기존 BUY 동작:
tests/test_corporate_action_atomic_recovery_postgres.py::test_joined_ledger_reads_qualify_base_columns - Unified ledger source filter·latest-first·keyset cursor: 같은 실제 PostgreSQL test의
source="corporate_action"및before_recorded_at/before_ledger_entry_idassertions - Holdings HTTP 200 및 기존 WAC/total cost basis:
tests/test_v1_portfolios_holdings.py::test_corporate_action_row_keeps_holdings_cost_basis_http_200 - Unified ledger HTTP 200 및 corporate-action response schema:
tests/test_v1_portfolios_manual_ledger.py::test_unified_ledger_includes_corporate_action_fields - Positional mapping drift guard:
tests/test_issue34_regressions.py::test_runtime_schema_has_one_corporate_action_ddl_and_replay_mapping_starts_at_18 - Authorization·기존 API schema·기업행동 없는 경로: 전체 repository suite
Executed evidence
- Unqualified query probe on real PostgreSQL: SQLSTATE
42702,AmbiguousColumn(RED). - Same JOIN with
ledger.ledger_entry_id: success (GREEN). - Real PostgreSQL repository regression plus two API regressions:
3 passed, 1 warning. - Full suite with real-PostgreSQL selector enabled:
711 passed, 25 skipped, 17 warnings. - Python compile,
proofline validate, andgit diff --check: PASS. ProofLine emitted only pre-existing line-0001–0006 status warnings. - Ruff: no finding was introduced by the changed lines; repository has four pre-existing
SIM117findings inapp/repositories/postgres.pyand pre-existingUP017findings intests/test_v1_portfolios_holdings.py.
Artifact identities
app/repositories/postgres.py:2fa5ecbdc29a41bbc1379069b15e7cf43c7bf62cf8f00a3fa824ff8c182f410etests/test_corporate_action_atomic_recovery_postgres.py:0d0c436efe443b53c11b792885ca17e983320afe70d13122c7b89d3d73cf0cddtests/test_v1_portfolios_holdings.py:daff8ce2bec9f161e1a399d9bb3bea3cbf97707c6d8805cfedb66900b7b036e2tests/test_v1_portfolios_manual_ledger.py:45bb77f66708b0b76e133031b3f35ac06714558c9603ec56c1b642906ca2e681tests/test_issue34_regressions.py:661742e430522af58ebc15a8f97c8385e1f65126bf71a2783716c269a76ac45f.proofline/lines/line-0007/req-0007.md:a3a6ae501f7635cc80a5a96416e61aa3ecce326a732126feba3b9ad1a7c8df73.proofline/criteria/ac-0037.md:99dab6c2d70367c236dc08a65b24d6ddf94e131500e06cd52e9ab89784708d2d