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
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
"""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()
|
||||
Reference in New Issue
Block a user