62 lines
1.8 KiB
Python
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
|