"""Tests für das Submission-Modell.""" from datetime import datetime import pytest from pydantic import ValidationError from src.models.submission import Submission def test_gueltige_submission_erstellen(): """Testet das Erstellen einer gültigen Submission mit allen Feldern.""" submission = Submission( message_id="msg_123", plattform="whatsapp", absender="+491234567890", text="Hallo Welt", ) assert submission.message_id == "msg_123" assert submission.plattform == "whatsapp" assert submission.absender == "+491234567890" assert submission.text == "Hallo Welt" assert submission.status == "neu" assert submission.zeitstempel is not None def test_leerer_text_wirft_error(): """Testet dass ein leeres Textfeld eine ValidationError wirft.""" with pytest.raises(ValidationError): Submission( message_id="msg_123", plattform="whatsapp", absender="+491234567890", text="", ) def test_text_ueber_5000_zeichen_wirft_error(): """Testet dass Text > 5000 Zeichen eine ValidationError wirft.""" with pytest.raises(ValidationError): Submission( message_id="msg_123", plattform="telegram", absender="@user123", text="x" * 5001, ) def test_zeitstempel_wird_automatisch_gesetzt(): """Testet dass zeitstempel automatisch gesetzt wird und nicht None ist.""" vor_erstellung = datetime.now() submission = Submission( message_id="msg_456", plattform="whatsapp", absender="+499876543210", text="Testnachricht", ) nach_erstellung = datetime.now() assert submission.zeitstempel is not None assert vor_erstellung <= submission.zeitstempel <= nach_erstellung