feat: Input-Validatoren für Telefon, Spielname, Spieleranzahl
Quality Gate / 🛡️ Lint + Type Check + Tests (push) Failing after 14m57s
Quality Gate / 🛡️ Lint + Type Check + Tests (push) Failing after 14m57s
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user