Files
BSN-Chatsystem/tests/test_submission.py
T
Alicia (BSN) e43909b0cd
Quality Gate / 🛡️ Lint + Type Check + Tests (push) Failing after 10m18s
feat: Submission-Pydantic-Modell mit Validierung
2026-06-21 23:05:21 +00:00

61 lines
1.7 KiB
Python

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