Update pytests

This commit is contained in:
Stefan Agner
2025-06-24 00:22:46 +02:00
parent 3d01789275
commit fc768b10c4
2 changed files with 96 additions and 32 deletions

View File

@ -142,6 +142,38 @@ def mock_all(
},
},
)
aioclient_mock.get(
"http://127.0.0.1/addons",
json={
"result": "ok",
"data": {
"addons": [
{
"name": "test",
"slug": "test",
"state": "started",
"update_available": True,
"icon": False,
"version": "2.0.0",
"version_latest": "2.0.1",
"repository": "core",
"url": "https://github.com/home-assistant/addons/test",
},
{
"name": "test2",
"slug": "test2",
"state": "stopped",
"update_available": False,
"icon": True,
"version": "3.1.0",
"version_latest": "3.1.0",
"repository": "core",
"url": "https://github.com",
},
],
},
},
)
aioclient_mock.get(
"http://127.0.0.1/core/stats",
json={
@ -232,7 +264,7 @@ async def test_setup_api_ping(
await hass.async_block_till_done()
assert result
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 18
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 19
assert get_core_info(hass)["version_latest"] == "1.0.0"
assert is_hassio(hass)
@ -279,7 +311,7 @@ async def test_setup_api_push_api_data(
await hass.async_block_till_done()
assert result
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 18
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 19
assert not aioclient_mock.mock_calls[0][2]["ssl"]
assert aioclient_mock.mock_calls[0][2]["port"] == 9999
assert "watchdog" not in aioclient_mock.mock_calls[0][2]
@ -300,7 +332,7 @@ async def test_setup_api_push_api_data_server_host(
await hass.async_block_till_done()
assert result
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 18
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 19
assert not aioclient_mock.mock_calls[0][2]["ssl"]
assert aioclient_mock.mock_calls[0][2]["port"] == 9999
assert not aioclient_mock.mock_calls[0][2]["watchdog"]
@ -321,7 +353,7 @@ async def test_setup_api_push_api_data_default(
await hass.async_block_till_done()
assert result
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 18
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 19
assert not aioclient_mock.mock_calls[0][2]["ssl"]
assert aioclient_mock.mock_calls[0][2]["port"] == 8123
refresh_token = aioclient_mock.mock_calls[0][2]["refresh_token"]
@ -402,7 +434,7 @@ async def test_setup_api_existing_hassio_user(
await hass.async_block_till_done()
assert result
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 18
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 19
assert not aioclient_mock.mock_calls[0][2]["ssl"]
assert aioclient_mock.mock_calls[0][2]["port"] == 8123
assert aioclient_mock.mock_calls[0][2]["refresh_token"] == token.token
@ -421,7 +453,7 @@ async def test_setup_core_push_config(
await hass.async_block_till_done()
assert result
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 18
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 19
assert aioclient_mock.mock_calls[1][2]["timezone"] == "testzone"
with patch("homeassistant.util.dt.set_default_time_zone"):
@ -445,7 +477,7 @@ async def test_setup_hassio_no_additional_data(
await hass.async_block_till_done()
assert result
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 18
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 19
assert aioclient_mock.mock_calls[-1][3]["Authorization"] == "Bearer 123456"
@ -527,14 +559,14 @@ async def test_service_calls(
)
await hass.async_block_till_done()
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 22
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 23
assert aioclient_mock.mock_calls[-1][2] == "test"
await hass.services.async_call("hassio", "host_shutdown", {})
await hass.services.async_call("hassio", "host_reboot", {})
await hass.async_block_till_done()
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 24
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 25
await hass.services.async_call("hassio", "backup_full", {})
await hass.services.async_call(
@ -549,7 +581,7 @@ async def test_service_calls(
)
await hass.async_block_till_done()
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 26
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 27
assert aioclient_mock.mock_calls[-1][2] == {
"name": "2021-11-13 03:48:00",
"homeassistant": True,
@ -574,7 +606,7 @@ async def test_service_calls(
)
await hass.async_block_till_done()
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 28
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 29
assert aioclient_mock.mock_calls[-1][2] == {
"addons": ["test"],
"folders": ["ssl"],
@ -593,7 +625,7 @@ async def test_service_calls(
)
await hass.async_block_till_done()
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 29
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 30
assert aioclient_mock.mock_calls[-1][2] == {
"name": "backup_name",
"location": "backup_share",
@ -609,7 +641,7 @@ async def test_service_calls(
)
await hass.async_block_till_done()
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 30
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 31
assert aioclient_mock.mock_calls[-1][2] == {
"name": "2021-11-13 03:48:00",
"location": None,
@ -628,7 +660,7 @@ async def test_service_calls(
)
await hass.async_block_till_done()
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 32
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 33
assert aioclient_mock.mock_calls[-1][2] == {
"name": "2021-11-13 11:48:00",
"location": None,
@ -683,7 +715,7 @@ async def test_addon_service_call_with_complex_slug(
with (
patch.dict(os.environ, MOCK_ENVIRON),
patch(
"homeassistant.components.hassio.HassIO.get_supervisor_info",
"homeassistant.components.hassio.HassIO.get_addons",
return_value=supervisor_mock_data,
),
):
@ -811,7 +843,7 @@ async def test_device_registry_calls(
config_entry.add_to_hass(hass)
assert await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done(wait_background_tasks=True)
assert len(device_registry.devices) == 6
assert len(device_registry.devices) == 5
supervisor_mock_data = {
"version": "1.0.0",
@ -919,13 +951,13 @@ async def test_coordinator_updates(
await hass.async_block_till_done()
# Initial refresh, no update refresh call
supervisor_client.refresh_updates.assert_not_called()
supervisor_client.reload_updates.assert_not_called()
async_fire_time_changed(hass, dt_util.now() + timedelta(minutes=20))
await hass.async_block_till_done()
# Scheduled refresh, no update refresh call
supervisor_client.refresh_updates.assert_not_called()
supervisor_client.reload_updates.assert_not_called()
await hass.services.async_call(
"homeassistant",
@ -940,15 +972,15 @@ async def test_coordinator_updates(
)
# There is a REQUEST_REFRESH_DELAYs cooldown on the debouncer
supervisor_client.refresh_updates.assert_not_called()
supervisor_client.reload_updates.assert_not_called()
async_fire_time_changed(
hass, dt_util.now() + timedelta(seconds=REQUEST_REFRESH_DELAY)
)
await hass.async_block_till_done()
supervisor_client.refresh_updates.assert_called_once()
supervisor_client.reload_updates.assert_called_once()
supervisor_client.refresh_updates.reset_mock()
supervisor_client.refresh_updates.side_effect = SupervisorError("Unknown")
supervisor_client.reload_updates.reset_mock()
supervisor_client.reload_updates.side_effect = SupervisorError("Unknown")
await hass.services.async_call(
"homeassistant",
"update_entity",
@ -965,7 +997,7 @@ async def test_coordinator_updates(
hass, dt_util.now() + timedelta(seconds=REQUEST_REFRESH_DELAY)
)
await hass.async_block_till_done()
supervisor_client.refresh_updates.assert_called_once()
supervisor_client.reload_updates.assert_called_once()
assert "Error on Supervisor API: Unknown" in caplog.text
@ -983,7 +1015,7 @@ async def test_coordinator_updates_stats_entities_enabled(
assert await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
# Initial refresh without stats
supervisor_client.refresh_updates.assert_not_called()
supervisor_client.reload_updates.assert_not_called()
# Refresh with stats once we know which ones are needed
async_fire_time_changed(
@ -991,12 +1023,12 @@ async def test_coordinator_updates_stats_entities_enabled(
)
await hass.async_block_till_done()
supervisor_client.refresh_updates.assert_called_once()
supervisor_client.reload_updates.assert_called_once()
supervisor_client.refresh_updates.reset_mock()
supervisor_client.reload_updates.reset_mock()
async_fire_time_changed(hass, dt_util.now() + timedelta(minutes=20))
await hass.async_block_till_done()
supervisor_client.refresh_updates.assert_not_called()
supervisor_client.reload_updates.assert_not_called()
await hass.services.async_call(
"homeassistant",
@ -1009,7 +1041,7 @@ async def test_coordinator_updates_stats_entities_enabled(
},
blocking=True,
)
supervisor_client.refresh_updates.assert_not_called()
supervisor_client.reload_updates.assert_not_called()
# There is a REQUEST_REFRESH_DELAYs cooldown on the debouncer
async_fire_time_changed(
@ -1017,8 +1049,8 @@ async def test_coordinator_updates_stats_entities_enabled(
)
await hass.async_block_till_done()
supervisor_client.refresh_updates.reset_mock()
supervisor_client.refresh_updates.side_effect = SupervisorError("Unknown")
supervisor_client.reload_updates.reset_mock()
supervisor_client.reload_updates.side_effect = SupervisorError("Unknown")
await hass.services.async_call(
"homeassistant",
"update_entity",
@ -1035,7 +1067,7 @@ async def test_coordinator_updates_stats_entities_enabled(
hass, dt_util.now() + timedelta(seconds=REQUEST_REFRESH_DELAY)
)
await hass.async_block_till_done()
supervisor_client.refresh_updates.assert_called_once()
supervisor_client.reload_updates.assert_called_once()
assert "Error on Supervisor API: Unknown" in caplog.text
@ -1074,7 +1106,7 @@ async def test_setup_hardware_integration(
await hass.async_block_till_done(wait_background_tasks=True)
assert result
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 18
assert aioclient_mock.call_count + len(supervisor_client.mock_calls) == 19
assert len(mock_setup_entry.mock_calls) == 1

View File

@ -130,6 +130,38 @@ def mock_all(
},
},
)
aioclient_mock.get(
"http://127.0.0.1/addons",
json={
"result": "ok",
"data": {
"addons": [
{
"name": "test",
"slug": "test",
"state": "started",
"update_available": True,
"icon": False,
"version": "2.0.0",
"version_latest": "2.0.1",
"repository": "core",
"url": "https://github.com/home-assistant/addons/test",
},
{
"name": "test2",
"slug": "test2",
"state": "stopped",
"update_available": False,
"icon": True,
"version": "3.1.0",
"version_latest": "3.1.0",
"repository": "core",
"url": "https://github.com",
},
],
},
},
)
aioclient_mock.get(
"http://127.0.0.1/core/stats",
json={