"""진입이 차단되지 않도록 하는 설정 관계 검증. 2026-09-23: 최소 주문금액(50만)이 종목당 예산(총자산×6%≈59만)과 거의 같아, 신뢰도·현금 보정으로 조금만 깎여도 전부 탈락했다(하루 141건 min_amount_guard). """ import pytest from app.core.config import settings def test_min_buy_amount_is_well_below_position_budget(): """1,000만원 계좌 기준 종목당 예산의 절반 이하여야 보정 후에도 주문이 살아남는다.""" budget = 10_000_000 * settings.MAX_POSITION_SIZE assert settings.MIN_BUY_AMOUNT_KRW <= budget * 0.5, ( f"최소주문 {settings.MIN_BUY_AMOUNT_KRW:,.0f} vs 종목당 예산 {budget:,.0f}" ) def test_position_size_allows_enough_concurrent_holdings(): """스윙 자본 상한 안에서 최소 10종목은 동시 보유할 수 있어야 표본이 쌓인다.""" swing_cap = getattr(settings, "SWING_MAX_CAPITAL_RATIO", 1.0) assert swing_cap / settings.MAX_POSITION_SIZE >= 10 def test_values_are_intended(): assert settings.MAX_POSITION_SIZE == 0.04 assert settings.MIN_BUY_AMOUNT_KRW == 150_000