Files

62 lines
1.8 KiB
Python

"""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