From f596cb19fd7c5e60d89f474aafff95f4e4c6616d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Sun, 14 Nov 2021 10:53:19 +0100 Subject: [PATCH] Handle KeyError in getuser (#59667) --- homeassistant/helpers/system_info.py | 6 +++++- tests/helpers/test_system_info.py | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/homeassistant/helpers/system_info.py b/homeassistant/helpers/system_info.py index 766fa90af96..7e65ab858ad 100644 --- a/homeassistant/helpers/system_info.py +++ b/homeassistant/helpers/system_info.py @@ -23,13 +23,17 @@ async def async_get_system_info(hass: HomeAssistant) -> dict[str, Any]: "virtualenv": is_virtual_env(), "python_version": platform.python_version(), "docker": False, - "user": getuser(), "arch": platform.machine(), "timezone": str(hass.config.time_zone), "os_name": platform.system(), "os_version": platform.release(), } + try: + info_object["user"] = getuser() + except KeyError: + info_object["user"] = None + if platform.system() == "Windows": info_object["os_version"] = platform.win32_ver()[0] elif platform.system() == "Darwin": diff --git a/tests/helpers/test_system_info.py b/tests/helpers/test_system_info.py index fd9d488596f..f4cb70f421a 100644 --- a/tests/helpers/test_system_info.py +++ b/tests/helpers/test_system_info.py @@ -27,3 +27,10 @@ async def test_container_installationtype(hass): ), patch("homeassistant.helpers.system_info.getuser", return_value="user"): info = await hass.helpers.system_info.async_get_system_info() assert info["installation_type"] == "Unknown" + + +async def test_getuser_keyerror(hass): + """Test getuser keyerror.""" + with patch("homeassistant.helpers.system_info.getuser", side_effect=KeyError): + info = await hass.helpers.system_info.async_get_system_info() + assert info["user"] is None