"""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()