Files
portfolio-hub/.proofline/lines/line-0007/evidence/test-report.md
T

2.7 KiB
Raw Blame History

AC-0037 Test Report

  • 실행 시각: 2026-09-13T21:53:39+09:00
  • 기준 Git HEAD: c7d8235bdebfa8c2459b0b3300d8ed40a9f465e5
  • 검증 대상: 위 HEAD의 fix/issue-19-corporate-action-reads working-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_id assertions
  • 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

  1. Unqualified query probe on real PostgreSQL: SQLSTATE 42702, AmbiguousColumn (RED).
  2. Same JOIN with ledger.ledger_entry_id: success (GREEN).
  3. Real PostgreSQL repository regression plus two API regressions: 3 passed, 1 warning.
  4. Full suite with real-PostgreSQL selector enabled: 711 passed, 25 skipped, 17 warnings.
  5. Python compile, proofline validate, and git diff --check: PASS. ProofLine emitted only pre-existing line-0001–0006 status warnings.
  6. Ruff: no finding was introduced by the changed lines; repository has four pre-existing SIM117 findings in app/repositories/postgres.py and pre-existing UP017 findings in tests/test_v1_portfolios_holdings.py.

Artifact identities

  • app/repositories/postgres.py: 2fa5ecbdc29a41bbc1379069b15e7cf43c7bf62cf8f00a3fa824ff8c182f410e
  • tests/test_corporate_action_atomic_recovery_postgres.py: 0d0c436efe443b53c11b792885ca17e983320afe70d13122c7b89d3d73cf0cdd
  • tests/test_v1_portfolios_holdings.py: daff8ce2bec9f161e1a399d9bb3bea3cbf97707c6d8805cfedb66900b7b036e2
  • tests/test_v1_portfolios_manual_ledger.py: 45bb77f66708b0b76e133031b3f35ac06714558c9603ec56c1b642906ca2e681
  • tests/test_issue34_regressions.py: 661742e430522af58ebc15a8f97c8385e1f65126bf71a2783716c269a76ac45f
  • .proofline/lines/line-0007/req-0007.md: a3a6ae501f7635cc80a5a96416e61aa3ecce326a732126feba3b9ad1a7c8df73
  • .proofline/criteria/ac-0037.md: 99dab6c2d70367c236dc08a65b24d6ddf94e131500e06cd52e9ab89784708d2d