mirror of
https://github.com/Xe138/AI-Trader.git
synced 2026-04-05 18:27:25 -04:00
feat: add deployment mode configuration utilities
This commit is contained in:
96
tests/unit/test_deployment_config.py
Normal file
96
tests/unit/test_deployment_config.py
Normal file
@@ -0,0 +1,96 @@
|
||||
import os
|
||||
import pytest
|
||||
from tools.deployment_config import (
|
||||
get_deployment_mode,
|
||||
is_dev_mode,
|
||||
is_prod_mode,
|
||||
get_data_path,
|
||||
get_db_path,
|
||||
should_preserve_dev_data,
|
||||
log_api_key_warning,
|
||||
get_deployment_mode_dict
|
||||
)
|
||||
|
||||
|
||||
def test_get_deployment_mode_default():
|
||||
"""Test default deployment mode is PROD"""
|
||||
# Clear env to test default
|
||||
os.environ.pop("DEPLOYMENT_MODE", None)
|
||||
assert get_deployment_mode() == "PROD"
|
||||
|
||||
|
||||
def test_get_deployment_mode_dev():
|
||||
"""Test DEV mode detection"""
|
||||
os.environ["DEPLOYMENT_MODE"] = "DEV"
|
||||
assert get_deployment_mode() == "DEV"
|
||||
assert is_dev_mode() == True
|
||||
assert is_prod_mode() == False
|
||||
|
||||
|
||||
def test_get_deployment_mode_prod():
|
||||
"""Test PROD mode detection"""
|
||||
os.environ["DEPLOYMENT_MODE"] = "PROD"
|
||||
assert get_deployment_mode() == "PROD"
|
||||
assert is_dev_mode() == False
|
||||
assert is_prod_mode() == True
|
||||
|
||||
|
||||
def test_get_data_path_prod():
|
||||
"""Test production data path"""
|
||||
os.environ["DEPLOYMENT_MODE"] = "PROD"
|
||||
assert get_data_path("./data/agent_data") == "./data/agent_data"
|
||||
|
||||
|
||||
def test_get_data_path_dev():
|
||||
"""Test dev data path substitution"""
|
||||
os.environ["DEPLOYMENT_MODE"] = "DEV"
|
||||
assert get_data_path("./data/agent_data") == "./data/dev_agent_data"
|
||||
|
||||
|
||||
def test_get_db_path_prod():
|
||||
"""Test production database path"""
|
||||
os.environ["DEPLOYMENT_MODE"] = "PROD"
|
||||
assert get_db_path("data/trading.db") == "data/trading.db"
|
||||
|
||||
|
||||
def test_get_db_path_dev():
|
||||
"""Test dev database path substitution"""
|
||||
os.environ["DEPLOYMENT_MODE"] = "DEV"
|
||||
assert get_db_path("data/trading.db") == "data/trading_dev.db"
|
||||
assert get_db_path("data/jobs.db") == "data/jobs_dev.db"
|
||||
|
||||
|
||||
def test_should_preserve_dev_data_default():
|
||||
"""Test default preserve flag is False"""
|
||||
os.environ.pop("PRESERVE_DEV_DATA", None)
|
||||
assert should_preserve_dev_data() == False
|
||||
|
||||
|
||||
def test_should_preserve_dev_data_true():
|
||||
"""Test preserve flag can be enabled"""
|
||||
os.environ["PRESERVE_DEV_DATA"] = "true"
|
||||
assert should_preserve_dev_data() == True
|
||||
|
||||
|
||||
def test_log_api_key_warning_in_dev(capsys):
|
||||
"""Test warning logged when API keys present in DEV mode"""
|
||||
os.environ["DEPLOYMENT_MODE"] = "DEV"
|
||||
os.environ["OPENAI_API_KEY"] = "sk-test123"
|
||||
|
||||
log_api_key_warning()
|
||||
|
||||
captured = capsys.readouterr()
|
||||
assert "⚠️ WARNING: Production API keys detected in DEV mode" in captured.out
|
||||
assert "OPENAI_API_KEY" in captured.out
|
||||
|
||||
|
||||
def test_get_deployment_mode_dict():
|
||||
"""Test deployment mode dictionary generation"""
|
||||
os.environ["DEPLOYMENT_MODE"] = "DEV"
|
||||
os.environ["PRESERVE_DEV_DATA"] = "true"
|
||||
|
||||
result = get_deployment_mode_dict()
|
||||
|
||||
assert result["deployment_mode"] == "DEV"
|
||||
assert result["is_dev_mode"] == True
|
||||
assert result["preserve_dev_data"] == True
|
||||
Reference in New Issue
Block a user