* Fix error when name is non-latin script

When the name is non-latin script (e.g. Japanese), slugify returns empty string and causes failure in a later stage. This commit fixes the issue by using default name.

* Add test
This commit is contained in:
Paulus Schoutsen 2018-01-11 15:26:48 -08:00 committed by GitHub
parent 6af42b4372
commit 9384e2c963
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 2 deletions

View File

@ -35,10 +35,10 @@ def generate_entity_id(entity_id_format: str, name: Optional[str],
current_ids, hass
).result()
name = (name or DEVICE_DEFAULT_NAME).lower()
name = (slugify(name) or slugify(DEVICE_DEFAULT_NAME)).lower()
return ensure_unique_string(
entity_id_format.format(slugify(name)), current_ids)
entity_id_format.format(name), current_ids)
@callback

View File

@ -31,6 +31,14 @@ def test_generate_entity_id_given_keys():
'test.another_entity']) == 'test.overwrite_hidden_true'
def test_generate_entity_id_with_nonlatin_name():
"""Test generate_entity_id given a name containing non-latin characters."""
fmt = 'test.{}'
assert entity.generate_entity_id(
fmt, 'ホームアシスタント', current_ids=[]
) == 'test.unnamed_device'
def test_async_update_support(hass):
"""Test async update getting called."""
sync_update = []