Files
Plugin_SN_Basis/tests/test_text_wrapper.py
T
DanielandClaude Sonnet 5 a754fcfe34 Umlaute/Sonderzeichen in Bezeichnern zentral behandeln (#42)
Regex zur Bezeichner-Bereinigung aus Datenschreiber.py in
functions/text_wrapper.py (sanitize_bezeichner) ausgelagert und um
Bindestrich ergänzt, der bisher fehlte. Neue Tests decken Umlaute, ß,
Unterstrich, Bindestrich, eigenes Ersatzzeichen und Leerfälle ab.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MneDjzrjmbpQt8udFYxN9e
2026-09-14 11:09:41 +02:00

44 lines
1.9 KiB
Python

"""sn_basis/tests/test_text_wrapper.py
Unit-Tests für :mod:`sn_basis.functions.text_wrapper`.
"""
import unittest
from sn_basis.functions.text_wrapper import sanitize_bezeichner
class TestSanitizeBezeichner(unittest.TestCase):
def test_umlaute_bleiben_erhalten(self):
"""Prüft, dass Umlaute und ß nicht durch den Ersatz entfernt werden."""
self.assertEqual(sanitize_bezeichner("Grünfläche"), "Grünfläche")
self.assertEqual(sanitize_bezeichner("Straße"), "Straße")
def test_bindestrich_bleibt_erhalten(self):
"""Prüft, dass ein Bindestrich im Bezeichner erhalten bleibt (Issue #42)."""
self.assertEqual(sanitize_bezeichner("Wege-Plan"), "Wege-Plan")
def test_unterstrich_bleibt_erhalten(self):
"""Prüft, dass ein Unterstrich im Bezeichner erhalten bleibt."""
self.assertEqual(sanitize_bezeichner("thema_flur_1"), "thema_flur_1")
def test_leerzeichen_wird_durch_ersatz_zusammengefasst(self):
"""Prüft, dass Leerzeichen (kein zulässiges Zeichen) zu einem Ersatzzeichen werden."""
self.assertEqual(sanitize_bezeichner("Flurstücke Gemarkung"), "Flurstücke_Gemarkung")
def test_fuehrender_und_folgender_ersatz_wird_entfernt(self):
"""Prüft, dass ein Ersatzzeichen am Anfang oder Ende des Ergebnisses entfernt wird."""
self.assertEqual(sanitize_bezeichner("!Thema!"), "Thema")
def test_eigenes_ersatzzeichen_wird_verwendet(self):
"""Prüft, dass ein abweichendes Ersatzzeichen anstelle von Unterstrich genutzt wird."""
self.assertEqual(sanitize_bezeichner("a b", ersatz="-"), "a-b")
def test_nur_unzulaessige_zeichen_ergibt_leeren_string(self):
"""Prüft, dass ein Bezeichner ganz aus unzulässigen Zeichen zu einem leeren String wird."""
self.assertEqual(sanitize_bezeichner("!!!"), "")
if __name__ == "__main__":
unittest.main()