"""Lokale Garantieende-Schätzung aus Belegtext (ohne echtes PDF).""" from datetime import date from app.services.warranty import guess_warranty_until def test_zeitraum_plus_kaufdatum_vom_stueck(): # Beleg nennt nur den Zeitraum; das Kaufdatum kommt vom Einzelstück. text = "Vielen Dank für Ihren Einkauf. 24 Monate Garantie auf dieses Gerät." assert guess_warranty_until(text, acquired_on=date(2024, 3, 31)) == date(2026, 3, 31) def test_jahre_werden_verstanden(): text = "2 Jahre Gewährleistung" assert guess_warranty_until(text, acquired_on=date(2023, 1, 15)) == date(2025, 1, 15) def test_zeitraum_plus_rechnungsdatum_aus_dem_beleg(): text = "Rechnungsdatum: 05.06.2024\nGarantie: 12 Monate" assert guess_warranty_until(text) == date(2025, 6, 5) def test_warranty_keyword_before_period_english(): text = "Warranty period is 36 months from purchase." assert guess_warranty_until(text, acquired_on=date(2022, 2, 1)) == date(2025, 2, 1) def test_explizites_datum_neben_stichwort(): text = "Garantie gültig bis 31.12.2027." assert guess_warranty_until(text) == date(2027, 12, 31) def test_ohne_hinweise_kein_vorschlag(): assert guess_warranty_until("Nur ein Kassenbon ohne alles.") is None def test_leerer_text_ist_none(): assert guess_warranty_until("", acquired_on=date(2024, 1, 1)) is None