test_config.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import pytest
  2. import okx_codex_trader
  3. from okx_codex_trader.config import load_config
  4. def test_package_exports_version():
  5. assert okx_codex_trader.__version__ == "0.1.0"
  6. def test_load_config_requires_okx_credentials(monkeypatch):
  7. monkeypatch.delenv("OKX_API_KEY", raising=False)
  8. monkeypatch.delenv("OKX_API_SECRET", raising=False)
  9. monkeypatch.delenv("OKX_API_PASSPHRASE", raising=False)
  10. with pytest.raises(ValueError):
  11. load_config()
  12. def test_load_config_uses_explicit_env_mapping():
  13. config = load_config(
  14. {
  15. "OKX_API_KEY": "key",
  16. "OKX_API_SECRET": "secret",
  17. "OKX_API_PASSPHRASE": "passphrase",
  18. }
  19. )
  20. assert config.api_key == "key"
  21. assert config.api_secret == "secret"
  22. assert config.api_passphrase == "passphrase"
  23. assert config.trading_env == "demo"
  24. def test_load_config_uses_live_trading_env():
  25. config = load_config(
  26. {
  27. "OKX_API_KEY": "key",
  28. "OKX_API_SECRET": "secret",
  29. "OKX_API_PASSPHRASE": "passphrase",
  30. "OKX_TRADING_ENV": "live",
  31. }
  32. )
  33. assert config.trading_env == "live"
  34. def test_load_config_rejects_unknown_trading_env():
  35. with pytest.raises(ValueError, match="OKX_TRADING_ENV must be demo or live"):
  36. load_config(
  37. {
  38. "OKX_API_KEY": "key",
  39. "OKX_API_SECRET": "secret",
  40. "OKX_API_PASSPHRASE": "passphrase",
  41. "OKX_TRADING_ENV": "paper",
  42. }
  43. )