mirror of
https://github.com/home-assistant/core.git
synced 2025-07-16 01:37:08 +00:00
Push country config to Supervisor (#143871)
This commit is contained in:
parent
daf143f66e
commit
f1b8c8855e
@ -385,18 +385,20 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: # noqa:
|
||||
)
|
||||
|
||||
last_timezone = None
|
||||
last_country = None
|
||||
|
||||
async def push_config(_: Event | None) -> None:
|
||||
"""Push core config to Hass.io."""
|
||||
nonlocal last_timezone
|
||||
nonlocal last_country
|
||||
|
||||
new_timezone = str(hass.config.time_zone)
|
||||
new_country = str(hass.config.country)
|
||||
|
||||
if new_timezone == last_timezone:
|
||||
return
|
||||
|
||||
last_timezone = new_timezone
|
||||
await hassio.update_hass_timezone(new_timezone)
|
||||
if new_timezone != last_timezone or new_country != last_country:
|
||||
last_timezone = new_timezone
|
||||
last_country = new_country
|
||||
await hassio.update_hass_config(new_timezone, new_country)
|
||||
|
||||
hass.bus.async_listen(EVENT_CORE_CONFIG_UPDATE, push_config)
|
||||
|
||||
|
@ -248,12 +248,14 @@ class HassIO:
|
||||
return await self.send_command("/homeassistant/options", payload=options)
|
||||
|
||||
@_api_bool
|
||||
def update_hass_timezone(self, timezone: str) -> Coroutine:
|
||||
def update_hass_config(self, timezone: str, country: str | None) -> Coroutine:
|
||||
"""Update Home-Assistant timezone data on Hass.io.
|
||||
|
||||
This method returns a coroutine.
|
||||
"""
|
||||
return self.send_command("/supervisor/options", payload={"timezone": timezone})
|
||||
return self.send_command(
|
||||
"/supervisor/options", payload={"timezone": timezone, "country": country}
|
||||
)
|
||||
|
||||
@_api_bool
|
||||
def update_diagnostics(self, diagnostics: bool) -> Coroutine:
|
||||
|
@ -404,7 +404,7 @@ async def test_setup_api_existing_hassio_user(
|
||||
assert aioclient_mock.mock_calls[0][2]["refresh_token"] == token.token
|
||||
|
||||
|
||||
async def test_setup_core_push_timezone(
|
||||
async def test_setup_core_push_config(
|
||||
hass: HomeAssistant,
|
||||
aioclient_mock: AiohttpClientMocker,
|
||||
supervisor_client: AsyncMock,
|
||||
@ -421,9 +421,10 @@ async def test_setup_core_push_timezone(
|
||||
assert aioclient_mock.mock_calls[1][2]["timezone"] == "testzone"
|
||||
|
||||
with patch("homeassistant.util.dt.set_default_time_zone"):
|
||||
await hass.config.async_update(time_zone="America/New_York")
|
||||
await hass.config.async_update(time_zone="America/New_York", country="US")
|
||||
await hass.async_block_till_done()
|
||||
assert aioclient_mock.mock_calls[-1][2]["timezone"] == "America/New_York"
|
||||
assert aioclient_mock.mock_calls[-1][2]["country"] == "US"
|
||||
|
||||
|
||||
async def test_setup_hassio_no_additional_data(
|
||||
|
@ -1942,7 +1942,7 @@ async def hassio_stubs(
|
||||
return_value={"result": "ok"},
|
||||
) as hass_api,
|
||||
patch(
|
||||
"homeassistant.components.hassio.HassIO.update_hass_timezone",
|
||||
"homeassistant.components.hassio.HassIO.update_hass_config",
|
||||
return_value={"result": "ok"},
|
||||
),
|
||||
patch(
|
||||
|
Loading…
x
Reference in New Issue
Block a user