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
44 lines
1.9 KiB
Python
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()
|