feat: Szenario-Zeitraum, Neuer Betrag, szenario-eigene Zahlungen – Datenmodell + Migration (A14-T1)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,3 +34,29 @@ def test_scenario_planned_item_roundtrip(db):
|
||||
db.commit()
|
||||
item = db.query(ScenarioPlannedItem).one()
|
||||
assert item.amount == Decimal("5000.00") and item.scenario_id == sc.id
|
||||
|
||||
|
||||
def test_a14_szenario_felder_roundtrip(db):
|
||||
from app.models.tables import (Category, Scenario, ScenarioModifier,
|
||||
ScenarioPlannedItem, ScenarioRecurringItem)
|
||||
cat = Category(name="A14-Kat")
|
||||
sc = Scenario(name="A14-Modell", description="")
|
||||
db.add_all([cat, sc])
|
||||
db.flush()
|
||||
db.add_all([
|
||||
ScenarioModifier(scenario_id=sc.id, target_type="recurring", target_id=1,
|
||||
kind="set", value=Decimal("-80.00"),
|
||||
start_date=date(2030, 2, 1), end_date=date(2030, 3, 31)),
|
||||
ScenarioPlannedItem(scenario_id=sc.id, name="E", amount=Decimal("-5.00"),
|
||||
due=date(2030, 1, 1), category_id=cat.id),
|
||||
ScenarioRecurringItem(scenario_id=sc.id, name="W", amount=Decimal("-10.00"),
|
||||
rhythm="monthly", due_day=14,
|
||||
start_date=date(2030, 1, 16), end_date=None,
|
||||
category_id=cat.id),
|
||||
])
|
||||
db.commit()
|
||||
m = db.query(ScenarioModifier).one()
|
||||
assert (m.kind, m.start_date, m.end_date) == ("set", date(2030, 2, 1), date(2030, 3, 31))
|
||||
assert db.query(ScenarioPlannedItem).one().category_id == cat.id
|
||||
w = db.query(ScenarioRecurringItem).one()
|
||||
assert (w.scenario_id, w.rhythm, w.due_day, w.category_id) == (sc.id, "monthly", 14, cat.id)
|
||||
|
||||
Reference in New Issue
Block a user