Skip to content

fix(test): compose 계약 검사에 누락된 필수 환경변수 보충 - #417

Merged
yellow-jam merged 1 commit into
mainfrom
fix/compose-contract-test-env
Aug 31, 2026
Merged

fix(test): compose 계약 검사에 누락된 필수 환경변수 보충#417
yellow-jam merged 1 commit into
mainfrom
fix/compose-contract-test-env

Conversation

@yellow-jam

Copy link
Copy Markdown
Collaborator

증상

Runtime and AWS Contract 워크플로의 python -m pytest -q tests/contractsmain에서 최근 5회 연속 실패했다.

AssertionError: error while interpolating x-order-database-url:
required variable HEDGEFUND_ORDER_DB_PASSWORD is missing a value

BffConsolidationTestsetUpClassdocker compose config를 부르는데, 렌더 자체가 실패해 계약 검사 5건이 시작도 못 했다.

원인

docker-compose.yml${VAR:?}필수라고 선언한 변수는 12개인데, _COMPOSE_TEST_ENV는 7개만 넘기고 있었다.

변수 테스트 env 개발자 .env
HEDGEFUND_ORDER_DB_PASSWORD
HEDGEFUND_CONDITIONAL_ORCHESTRATOR_DB_PASSWORD
HEDGEFUND_CONDITIONAL_WORKER_DB_PASSWORD
MCP_RISK_API_KEY
STRATEGY_PAPER_ORDER_TOKEN

로컬에서는 개발자 .env가 구멍을 메워 줘서 안 보였다. .env는 gitignore라 CI에는 없다. x-order-database-url 앵커가 추가된 뒤(348e3089) 테스트 env를 같이 늘리지 않은 것이 발단이다.

수정

  • 누락된 5개를 _COMPOSE_TEST_ENV에 추가
  • 회귀 검사 추가docker-compose.yml${VAR:?} 목록과 _COMPOSE_TEST_ENV를 대조한다. Docker를 부르지 않으므로 Docker 없는 환경에서도 돌고, compose에 필수 변수가 하나 늘어나는 순간 CI가 아니라 이 테스트가 먼저 알려준다.

이 테스트는 원래 명시 env를 넘겨 hermetic 하도록 설계돼 있다. 개발자 .env 유무에 결과가 갈리면 안 되는데 그게 깨져 있었다.

검증

python -m pytest -q tests/contracts/test_bff_consolidation.py
6 passed

tests/contracts 전체에서 에러 5건이 사라진다. 남는 2건(test_research_liaison_terminal_handoff, test_unified_api_contract)은 이 PR 이전부터 있던 별건이며 CI에서는 통과한다(로컬 Windows 전용 실패).

범위

테스트 픽스처만 수정. 프로덕션 코드·compose·.env 스키마는 건드리지 않았다.

🤖 Generated with Claude Code

- docker-compose.yml이 ${VAR:?}로 필수 선언한 12개 중 7개만 넘기고 있었음
- 누락분(ORDER/CONDITIONAL_ORCHESTRATOR/CONDITIONAL_WORKER DB 비밀번호,
  MCP_RISK_API_KEY, STRATEGY_PAPER_ORDER_TOKEN) 추가
- 로컬은 개발자 .env가 구멍을 메워 통과하고 CI만 깨지던 원인
- 필수 변수 목록과 테스트 env를 대조하는 회귀 검사 추가(Docker 불필요)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@yellow-jam
yellow-jam merged commit 5841688 into main Aug 31, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant