54 lines
1.8 KiB
Python
54 lines
1.8 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):
|
|
"""Testet dass eine gültige Telefonnummer bereinigt zurückgegeben wird."""
|
|
ergebnis = validiere_telefonnummer("+49 123 4567890")
|
|
assert ergebnis == "+491234567890"
|
|
|
|
def test_ungueltige_telefonnummer_wirft_error(self):
|
|
"""Testet dass eine ungültige Telefonnummer ValueError wirft."""
|
|
with pytest.raises(ValueError):
|
|
validiere_telefonnummer("12345") # Zu wenige Ziffern
|
|
|
|
|
|
class TestValidiereSpielName:
|
|
"""Tests für validiere_spiel_name."""
|
|
|
|
def test_gueltiger_spielname_bereinigt(self):
|
|
"""Testet dass ein gültiger Spielname bereinigt zurückgegeben wird."""
|
|
ergebnis = validiere_spiel_name(" Monopoly ")
|
|
assert ergebnis == "Monopoly"
|
|
|
|
def test_html_tags_im_spielnamen_entfernt(self):
|
|
"""Testet dass HTML-Tags aus dem Spielnamen entfernt werden."""
|
|
ergebnis = validiere_spiel_name("<b>Catan</b>")
|
|
assert ergebnis == "Catan"
|
|
assert "<b>" not in ergebnis
|
|
assert "</b>" not in ergebnis
|
|
|
|
|
|
class TestValidiereSpieleranzahl:
|
|
"""Tests für validiere_spieleranzahl."""
|
|
|
|
def test_gueltige_spieleranzahl_unveraendert(self):
|
|
"""Testet dass eine gültige Spieleranzahl unverändert zurückgegeben wird."""
|
|
ergebnis = validiere_spieleranzahl(5)
|
|
assert ergebnis == 5
|
|
|
|
def test_ungueltige_spieleranzahl_wirft_error(self):
|
|
"""Testet dass eine ungültige Spieleranzahl ValueError wirft."""
|
|
with pytest.raises(ValueError):
|
|
validiere_spieleranzahl(25) # Zu viele Spieler
|