diff --git a/homeassistant/components/local_todo/store.py b/homeassistant/components/local_todo/store.py index 79d5adb217f9..9cf35f03b306 100644 --- a/homeassistant/components/local_todo/store.py +++ b/homeassistant/components/local_todo/store.py @@ -24,7 +24,7 @@ class LocalTodoListStore: """Load the calendar from disk.""" if not self._path.exists(): return "" - return self._path.read_text() + return self._path.read_text(encoding="utf-8") async def async_store(self, ics_content: str) -> None: """Persist the calendar to storage.""" @@ -33,4 +33,4 @@ class LocalTodoListStore: def _store(self, ics_content: str) -> None: """Persist the calendar to storage.""" - self._path.write_text(ics_content) + self._path.write_text(ics_content, encoding="utf-8") diff --git a/tests/components/local_todo/conftest.py b/tests/components/local_todo/conftest.py index ab73dabb4744..2192efe89d83 100644 --- a/tests/components/local_todo/conftest.py +++ b/tests/components/local_todo/conftest.py @@ -55,7 +55,9 @@ class FakeStore(LocalTodoListStore): def _mock_exists(self) -> bool: return self._mock_path.read_text.return_value is not None - def _mock_write_text(self, content: str) -> None: + def _mock_write_text(self, content: str, encoding: str | None = None) -> None: + if encoding is None: + content.encode("ascii") self._mock_path.read_text.return_value = content diff --git a/tests/components/local_todo/test_todo.py b/tests/components/local_todo/test_todo.py index d293fcd36edd..f01597e89e19 100644 --- a/tests/components/local_todo/test_todo.py +++ b/tests/components/local_todo/test_todo.py @@ -98,6 +98,10 @@ EXPECTED_ADD_ITEM = { ), ({ATTR_DESCRIPTION: ""}, {**EXPECTED_ADD_ITEM, "description": ""}), ({ATTR_DESCRIPTION: None}, EXPECTED_ADD_ITEM), + ( + {ATTR_ITEM: "测试主卧清扫"}, + {**EXPECTED_ADD_ITEM, "summary": "测试主卧清扫"}, + ), ], ) async def test_add_item(