feat: Input-Validatoren für Telefon, Spielname, Spieleranzahl
Quality Gate / 🛡️ Lint + Type Check + Tests (push) Failing after 14m57s

This commit is contained in:
Alicia (BSN)
2026-06-21 23:20:43 +00:00
parent e43909b0cd
commit bf16015d5c
3 changed files with 151 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
"""Tests für die Input-Validatoren."""
import pytest
from src.utils.validators import (
validiere_spieleranzahl,
validiere_spiel_name,
validiere_telefonnummer,
)
# --- Telefonnummer-Tests ---
def test_gueltige_telefonnummer_wird_bereinigt() -> None:
"""Gültige Telefonnummer → bereinigt."""
# 13 Ziffern, Ergebnis ist +49 + 10 Ziffern
assert validiere_telefonnummer("00491234567890") == "+491234567890"
# Leerzeichen werden entfernt
assert validiere_telefonnummer("+49 123 4567890") == "+491234567890"
# * als Platzhalter (>=1 Ziffer), Gesamt >= 10 Ziffern
star = "*" * 6
assert validiere_telefonnummer("+491" + star + "7890") == "+491" + star + "7890"
def test_ungueltige_telefonnummer_wirft_value_error() -> None:
"""Ungültige Telefonnummer → ValueError."""
with pytest.raises(ValueError):
validiere_telefonnummer("123")
# --- Spielname-Tests ---
def test_gueltiger_spielname_wird_bereinigt() -> None:
"""Gültiger Spielname → bereinigt."""
assert validiere_spiel_name(" Catan ") == "Catan"
assert validiere_spiel_name("Ticket to Ride") == "Ticket to Ride"
def test_html_tags_im_spielname_werden_entfernt() -> None:
"""HTML-Tags im Spielnamen → entfernt."""
result = validiere_spiel_name("<b>Catan</b>")
assert "b>" not in result
assert "b" not in result.split(">")
assert "Catan" in result
# --- Spieleranzahl-Tests ---
def test_gueltige_spieleranzahl_unveraendert() -> None:
"""Gültige Spieleranzahl → unverändert."""
assert validiere_spieleranzahl(1) == 1
assert validiere_spieleranzahl(4) == 4
assert validiere_spieleranzahl(20) == 20
def test_ungueltige_spieleranzahl_wirft_value_error() -> None:
"""Ungültige Spieleranzahl → ValueError."""
with pytest.raises(ValueError):
validiere_spieleranzahl(0)
with pytest.raises(ValueError):
validiere_spieleranzahl(21)