portfolio-engine / tests /test_config.py
engineportf's picture
Initial Deployment from Local Engine
208fbf8 verified
Raw
History Blame Contribute Delete
1.03 kB
import sys
import os
import pytest
_this_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, _this_dir)
sys.path.insert(0, os.path.dirname(_this_dir))
from config import AppConfig, ConfigError
from pydantic import ValidationError
def test_app_config_valid_bounds():
cfg = AppConfig(single_asset_min=0.0, single_asset_max=0.5, sector_limit=0.6)
assert cfg.single_asset_min == 0.0
def test_app_config_invalid_bounds():
with pytest.raises(ConfigError, match="single_asset_min cannot be greater than single_asset_max"):
AppConfig(single_asset_min=0.6, single_asset_max=0.5)
def test_app_config_invalid_sector_limit():
with pytest.raises(ConfigError, match="sector_limit .* cannot be smaller than single_asset_max"):
AppConfig(single_asset_max=0.5, sector_limit=0.4)
def test_app_config_invalid_tax_rates():
with pytest.raises(ConfigError, match="Long-term tax rate is mathematically expected to be <= short-term tax rate"):
AppConfig(tax_rate_lt=0.4, tax_rate_st=0.2)