From 78b057ce02ec0d4a68742955c7d06e882b7ed611 Mon Sep 17 00:00:00 2001 From: Thomas Hollstegge Date: Wed, 27 Jan 2021 12:25:49 +0100 Subject: [PATCH] Make sure generated slugs are not empty (#43153) --- homeassistant/util/__init__.py | 5 ++++- tests/util/test_init.py | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) 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():