"""Tests für das Submission-Pydantic-Modell.""" from datetime import datetime import pytest from pydantic import ValidationError from src.models.submission import Submission def test_gueltige_submission_alle_felder_korrekt() -> None: """Gültige Submission erstellen — alle Felder korrekt.""" sub = Submission( message_id="msg_001", plattform="whatsapp", absender="+491234567890", text="Hallo, kennt jemand ein gutes Kartenspiele?", ) assert sub.message_id == "msg_001" assert sub.plattform == "whatsapp" assert sub.absender == "+491234567890" assert sub.text == "Hallo, kennt jemand ein gutes Kartenspiele?" assert sub.status == "neu" assert isinstance(sub.zeitstempel, datetime) def test_leerer_text_wirft_validation_error() -> None: """Leerer Text wirft ValidationError.""" with pytest.raises(ValidationError): Submission( message_id="msg_002", plattform="telegram", absender="chat_12345", text="", ) def test_text_ueber_5000_zeichen_wirft_validation_error() -> None: """Text > 5000 Zeichen wirft ValidationError.""" with pytest.raises(ValidationError): Submission( message_id="msg_003", plattform="telegram", absender="chat_12345", text="a" * 5001, ) def test_zeitstempel_wird_auto_gesetzt() -> None: """zeitstempel wird automatisch gesetzt (nicht None).""" before = datetime.now() sub = Submission( message_id="msg_004", plattform="whatsapp", absender="+4999999999", text="Test", ) after = datetime.now() assert sub.zeitstempel is not None assert before <= sub.zeitstempel <= after