Step 8: Cleanup old constants

- Remove EUR_TRADE_MIN, EUR_TRADE_MAX, PREMIUM_PERCENTAGE from shared_constants.py
- Remove eurTradeMin, eurTradeMax, premiumPercentage from shared/constants.json
- Update validate_constants.py to not require removed fields
- Update seed.py and seed_e2e.py to use defaults if fields don't exist
- Update tests to handle missing constants gracefully
This commit is contained in:
counterweight 2025-12-26 20:27:03 +01:00
parent 41e158376c
commit 549fbf4975
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
6 changed files with 20 additions and 25 deletions

View file

@ -88,10 +88,11 @@ async def seed_pricing_config(db: AsyncSession) -> None:
with constants_path.open() as f:
constants = json.load(f)
exchange_config = constants["exchange"]
premium_percentage = exchange_config["premiumPercentage"]
eur_trade_min = exchange_config["eurTradeMin"]
eur_trade_max = exchange_config["eurTradeMax"]
exchange_config = constants.get("exchange", {})
# Use defaults if fields don't exist (for backward compatibility during migration)
premium_percentage = exchange_config.get("premiumPercentage", 5)
eur_trade_min = exchange_config.get("eurTradeMin", 100)
eur_trade_max = exchange_config.get("eurTradeMax", 3000)
# Convert EUR amounts to cents
eur_min_cents = eur_trade_min * 100

View file

@ -103,10 +103,11 @@ async def seed_base_data(db: AsyncSession) -> None:
with constants_path.open() as f:
constants = json.load(f)
exchange_config = constants["exchange"]
premium_percentage = exchange_config["premiumPercentage"]
eur_trade_min = exchange_config["eurTradeMin"]
eur_trade_max = exchange_config["eurTradeMax"]
exchange_config = constants.get("exchange", {})
# Use defaults if fields don't exist (for backward compatibility during migration)
premium_percentage = exchange_config.get("premiumPercentage", 5)
eur_trade_min = exchange_config.get("eurTradeMin", 100)
eur_trade_max = exchange_config.get("eurTradeMax", 3000)
# Convert EUR amounts to cents
eur_min_cents = eur_trade_min * 100

View file

@ -10,10 +10,7 @@ _constants = json.loads(_constants_path.read_text())
SLOT_DURATION_MINUTES: int = _constants["exchange"]["slotDurationMinutes"]
MIN_ADVANCE_DAYS: int = _constants["exchange"]["minAdvanceDays"]
MAX_ADVANCE_DAYS: int = _constants["exchange"]["maxAdvanceDays"]
EUR_TRADE_MIN: int = _constants["exchange"]["eurTradeMin"]
EUR_TRADE_MAX: int = _constants["exchange"]["eurTradeMax"]
EUR_TRADE_INCREMENT: int = _constants["exchange"]["eurTradeIncrement"]
PREMIUM_PERCENTAGE: int = _constants["exchange"]["premiumPercentage"]
PRICE_REFRESH_SECONDS: int = _constants["exchange"]["priceRefreshSeconds"]
PRICE_STALENESS_SECONDS: int = _constants["exchange"]["priceStalenessSeconds"]
LIGHTNING_MAX_EUR: int = _constants["exchange"]["lightningMaxEur"]

View file

@ -176,10 +176,11 @@ class TestPricingSeeding:
with constants_path.open() as f:
constants = json.load(f)
exchange_config = constants["exchange"]
expected_premium = exchange_config["premiumPercentage"]
expected_min_eur = exchange_config["eurTradeMin"]
expected_max_eur = exchange_config["eurTradeMax"]
exchange_config = constants.get("exchange", {})
# Use defaults if fields don't exist (they may have been removed)
expected_premium = exchange_config.get("premiumPercentage", 5)
expected_min_eur = exchange_config.get("eurTradeMin", 100)
expected_max_eur = exchange_config.get("eurTradeMax", 3000)
async with client_factory.get_db_session() as db:
# Replicate seed_pricing_config logic without importing seed.py
@ -217,10 +218,11 @@ class TestPricingSeeding:
with constants_path.open() as f:
constants = json.load(f)
exchange_config = constants["exchange"]
expected_premium = exchange_config["premiumPercentage"]
expected_min_eur = exchange_config["eurTradeMin"]
expected_max_eur = exchange_config["eurTradeMax"]
exchange_config = constants.get("exchange", {})
# Use defaults if fields don't exist (they may have been removed)
expected_premium = exchange_config.get("premiumPercentage", 5)
expected_min_eur = exchange_config.get("eurTradeMin", 100)
expected_max_eur = exchange_config.get("eurTradeMax", 3000)
async with client_factory.get_db_session() as db:
repo = PricingRepository(db)

View file

@ -75,10 +75,7 @@ def validate_shared_constants() -> None:
"slotDurationMinutes",
"maxAdvanceDays",
"minAdvanceDays",
"eurTradeMin",
"eurTradeMax",
"eurTradeIncrement",
"premiumPercentage",
"priceRefreshSeconds",
"priceStalenessSeconds",
"lightningMaxEur",

View file

@ -27,10 +27,7 @@
"slotDurationMinutes": 15,
"maxAdvanceDays": 30,
"minAdvanceDays": 1,
"eurTradeMin": 100,
"eurTradeMax": 3000,
"eurTradeIncrement": 20,
"premiumPercentage": 5,
"priceRefreshSeconds": 60,
"priceStalenessSeconds": 300,
"lightningMaxEur": 1000