test: session_id 명시 전파 회귀 고정 (#326) #348
Reference in New Issue
Block a user
Delete Branch "feature/issue-326-session-id-explicit-propagation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
#326수용기준을 고정하는 회귀 테스트 추가trading_cycle)에서decision_logger.log_decision(session_id=...)가 런타임 세션 ID를 받는지 검증run_daily_session)에서decision_logger.log_decision(session_id=...)log_trade(session_id=...)둘 다 런타임 세션 ID를 명시 전달하는지 검증
Test
pytest -q tests/test_main.py -k "decision_logger_receives_scenario_match_details or run_daily_session_passes_runtime_session_id_to_decision_and_trade_logs"python3 -m py_compile tests/test_main.pyRefs: #326
PR #348 Review: ACT-09 session_id 명시 전파 회귀 고정
✅ LGTM
플랜 준수: ACT-09 (#326) — session_id 명시 전파 구현(PR #336)에 대한 회귀 테스트 추가. 의도 명확.
기존 테스트 보강:
get_session_infomock 추가 +log_decision호출에session_id == "KRX_REG"단언 추가 — 이전에 검증하지 않던 부분을 고정.신규 통합 테스트:
run_daily_session전체 흐름을 통해decision_logger.log_decision과log_trade양쪽에session_id="KRX_REG"가 전달되는지 end-to-end 검증. 범위 적절.Nit (optional, 머지 차단 아님):
다른 테스트들은 모두
{"rt_cd": "0", "msg1": "OK"}패턴을 사용합니다.rt_cd가 없으면 구현 코드의response.get("rt_cd") == "0"체크 실패 →log_trade가 호출되지 않아mock_log_trade.call_count >= 1단언이 엉뚱한 이유로 실패할 수 있습니다."rt_cd": "0"추가를 권장합니다.리뷰 nit 반영했습니다.\n\n- 의 mock 주문 응답을 로 변경해 성공 경로 의도를 명확히 고정했습니다.\n\n검증:\n- . [100%]
1 passed, 159 deselected in 1.44s (1 passed)\n- \n\n반영 커밋:
리뷰 nit 반영했습니다.
test_run_daily_session_passes_runtime_session_id_to_decision_and_trade_logs의 mock 주문 응답을{'rt_cd': '0', 'msg1': 'OK'}로 변경해 성공 경로 의도를 명확히 고정했습니다.검증:
pytest -q tests/test_main.py -k "run_daily_session_passes_runtime_session_id_to_decision_and_trade_logs"(1 passed)python3 -m py_compile tests/test_main.py반영 커밋:
db316c5Nit 반영 확인 — 위치 불일치
지적한 nit은 신규 테스트
test_run_daily_session_passes_runtime_session_id_to_decision_and_trade_logs내의broker.send_ordermock이었습니다. 그런데 수정은 기존 테스트test_sell_updates_original_buy_decision_outcome에 적용되었습니다.신규 테스트에는 여전히
rt_cd없이 남아있습니다:다음으로 수정해주세요:
(기존 테스트 수정은 올바르게 반영되었습니다. 신규 테스트 쪽만 추가 수정 필요합니다.)
좋은 지적 감사합니다. 신규 테스트 위치에 정확히 반영했습니다.
수정:
test_run_daily_session_passes_runtime_session_id_to_decision_and_trade_logs내부broker.send_order = AsyncMock(return_value={"rt_cd": "0", "msg1": "OK"})검증:
pytest -q tests/test_main.py -k "run_daily_session_passes_runtime_session_id_to_decision_and_trade_logs"(1 passed)python3 -m py_compile tests/test_main.py반영 커밋:
e3a3aadNit 반영 확인 ✅
신규 테스트
test_run_daily_session_passes_runtime_session_id_to_decision_and_trade_logs의broker.send_ordermock에"rt_cd": "0"추가 확인. 이로써log_trade호출 경로가 보장되고mock_log_trade.call_count >= 1단언이 올바른 이유로 검증됩니다.LGTM.