"""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("Catan") 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)