Files
US2KR/tests/test_config.py
T
2026-08-31 14:33:53 +09:00

48 lines
1.9 KiB
Python

"""Settings parsing: CSV env values, aliases, defaults."""
from __future__ import annotations
from datetime import date
from us2kr.config import Settings
def test_csv_env_values_are_split(monkeypatch):
monkeypatch.setenv("MINIMAX_FALLBACK_MODELS", "MiniMax-M2.7, MiniMax-M2.5")
monkeypatch.setenv("US2KR_KRX_EXTRA_HOLIDAYS", "2026-06-03,2026-12-31")
s = Settings(_env_file=None)
assert s.minimax_fallback_models == ["MiniMax-M2.7", "MiniMax-M2.5"]
assert s.krx_extra_holidays == [date(2026, 6, 3), date(2026, 12, 31)]
def test_empty_csv_gives_empty_list(monkeypatch):
monkeypatch.setenv("US2KR_KRX_EXTRA_HOLIDAYS", "")
monkeypatch.setenv("MINIMAX_FALLBACK_MODELS", "")
s = Settings(_env_file=None)
assert s.krx_extra_holidays == []
assert s.minimax_fallback_models == []
def test_defaults_without_env(monkeypatch):
for k in ("MINIMAX_FALLBACK_MODELS", "US2KR_KRX_EXTRA_HOLIDAYS", "TELEGRAM_BOT_TOKEN", "TELEGRAM_CHAT_ID"):
monkeypatch.delenv(k, raising=False)
s = Settings(_env_file=None)
assert s.minimax_model == "MiniMax-M3"
assert s.minimax_fallback_models == ["MiniMax-M2.7", "MiniMax-M2.5"]
assert s.krx_extra_holidays == []
assert s.telegram_enabled is False
def test_init_kwargs_accept_field_name_and_alias(monkeypatch):
monkeypatch.delenv("US2KR_RUN_OFFSET_MINUTES", raising=False)
assert Settings(_env_file=None, run_offset_minutes=30).run_offset_minutes == 30
assert Settings(_env_file=None, US2KR_RUN_OFFSET_MINUTES=45).run_offset_minutes == 45
def test_telegram_enabled_requires_both(monkeypatch):
monkeypatch.setenv("TELEGRAM_BOT_TOKEN", "123456:abcdefghijklmnopqrstuvwxyz")
monkeypatch.delenv("TELEGRAM_CHAT_ID", raising=False)
assert Settings(_env_file=None).telegram_enabled is False
monkeypatch.setenv("TELEGRAM_CHAT_ID", "42")
assert Settings(_env_file=None).telegram_enabled is True