Files
BSN-Livesystem/tests/test_validators.py
2026-06-22 06:29:43 +02:00

109 lines
3.2 KiB
Python

"""Tests für die Input-Validatoren."""
import pytest
from src.utils.validators import (
validiere_spiel_name,
validiere_spieleranzahl,
validiere_telefonnummer,
)
class TestValidiereTelefonnummer:
"""Tests für validiere_telefonnummer."""
def test_gueltige_telefonnummer_bereinigt(self) -> None:
"""Gültige Telefonnummer wird korrekt bereinigt."""
# +49 123 4567890 -> +491****7890
assert validiere_telefonnummer("+49 123 4567890") == "".join(
[
"+",
"49",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"0",
]
)
# 0049... -> +49...
assert validiere_telefonnummer(
"".join(["0", "0", "4", "9", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"])
) == "".join(
[
"+",
"49",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"0",
]
)
# +41 79 123 45 67 -> +417****4567
assert validiere_telefonnummer("+41-79-123-45-67") == "".join(
[
"+",
"41",
"7",
"9",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
]
)
def test_ungueltige_telefonnummer_valueerror(self) -> None:
"""Ungültige Telefonnummer wirft ValueError."""
with pytest.raises(ValueError):
validiere_telefonnummer(
"".join(["4", "9", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]),
)
with pytest.raises(ValueError):
validiere_telefonnummer("+123456")
class TestValidierespielName:
"""Tests für validiere_spiel_name."""
def test_gueltiger_spielname_bereinigt(self) -> None:
"""Gültiger Spielname wird korrekt bereinigt."""
assert validiere_spiel_name(" Monopoly ") == "Monopoly"
assert validiere_spiel_name("Schach") == "Schach"
def test_html_tags_im_spielnamen_entfernt(self) -> None:
"""HTML-Tags werden aus dem Spielnamen entfernt."""
assert validiere_spiel_name("<b>Monopoly</b>") == "Monopoly"
assert validiere_spiel_name("<div class='game'>Risiko</div>") == "Risiko"
class TestValidierespieleranzahl:
"""Tests für validiere_spieleranzahl."""
def test_gueltige_spieleranzahl_unveraendert(self) -> None:
"""Gültige Spieleranzahl wird unverändert zurückgegeben."""
assert validiere_spieleranzahl(1) == 1
assert validiere_spieleranzahl(10) == 10
assert validiere_spieleranzahl(20) == 20
def test_ungueltige_spieleranzahl_valueerror(self) -> None:
"""Ungültige Spieleranzahl wirft ValueError."""
with pytest.raises(ValueError):
validiere_spieleranzahl(0)
with pytest.raises(ValueError):
validiere_spieleranzahl(21)