diff --git a/homeassistant/util/__init__.py b/homeassistant/util/__init__.py index ad4ca18e4fe..281a7d5308c 100644 --- a/homeassistant/util/__init__.py +++ b/homeassistant/util/__init__.py @@ -87,7 +87,10 @@ def sanitize_path(path: str) -> str: def slugify(text: str, *, separator: str = "_") -> str: """Slugify a given text.""" - return unicode_slug.slugify(text, separator=separator) + if text == "": + return "" + slug = unicode_slug.slugify(text, separator=separator) + return "unknown" if slug == "" else slug def repr_helper(inp: Any) -> str: diff --git a/tests/util/test_init.py b/tests/util/test_init.py index 3855b62deb6..34e95013b26 100644 --- a/tests/util/test_init.py +++ b/tests/util/test_init.py @@ -68,6 +68,12 @@ def test_slugify(): assert util.slugify("Tèst_äöüß_ÄÖÜ") == "test_aouss_aou" assert util.slugify("影師嗎") == "ying_shi_ma" assert util.slugify("けいふぉんと") == "keihuonto" + assert util.slugify("$") == "unknown" + assert util.slugify("Ⓐ") == "unknown" + assert util.slugify("ⓑ") == "unknown" + assert util.slugify("$$$") == "unknown" + assert util.slugify("$something") == "something" + assert util.slugify("") == "" def test_repr_helper():