mirror of
https://github.com/mblanke/Lottery-Tracker.git
synced 2026-03-01 14:10:22 -05:00
Version 1.1
This commit is contained in:
47
tests/test_config.py
Normal file
47
tests/test_config.py
Normal file
@@ -0,0 +1,47 @@
|
||||
"""Tests for config.py."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from unittest.mock import patch
|
||||
|
||||
from config import LOTTERY_ODDS, STATE_TAX_RATES, load_config
|
||||
|
||||
|
||||
def test_all_states_present():
|
||||
assert len(STATE_TAX_RATES) == 51 # 50 states + DC
|
||||
|
||||
|
||||
def test_all_lottery_odds_present():
|
||||
assert "powerball" in LOTTERY_ODDS
|
||||
assert "megaMillions" in LOTTERY_ODDS
|
||||
assert "lottoMax" in LOTTERY_ODDS
|
||||
assert "lotto649" in LOTTERY_ODDS
|
||||
|
||||
|
||||
def test_load_config_defaults():
|
||||
cfg = load_config()
|
||||
assert cfg.debug is False
|
||||
assert cfg.port == 5000
|
||||
assert cfg.tax.lump_sum_rate == 0.52
|
||||
assert cfg.investment.cycles == 8
|
||||
|
||||
|
||||
@patch.dict(os.environ, {"FLASK_DEBUG": "true", "FLASK_PORT": "8080"})
|
||||
def test_load_config_from_env():
|
||||
cfg = load_config()
|
||||
assert cfg.debug is True
|
||||
assert cfg.port == 8080
|
||||
|
||||
|
||||
@patch.dict(os.environ, {"LUMP_SUM_RATE": "0.60"})
|
||||
def test_tax_config_from_env():
|
||||
cfg = load_config()
|
||||
assert cfg.tax.lump_sum_rate == 0.60
|
||||
|
||||
|
||||
def test_no_tax_states():
|
||||
"""Florida, Texas, Nevada, etc. should have 0% tax."""
|
||||
no_tax = ["AK", "FL", "NV", "NH", "SD", "TN", "TX", "WA", "WY"]
|
||||
for code in no_tax:
|
||||
assert STATE_TAX_RATES[code]["rate"] == 0.0, f"{code} should have 0% tax"
|
||||
Reference in New Issue
Block a user