mirror of
https://github.com/home-assistant/core.git
synced 2026-08-24 02:24:51 -05:00
Remove artificial delays from slow tests flagged by CI
The CI slow-test matcher flagged several tests that spend their time waiting rather than testing. Each one is fixed at its source: - cielo_home: the config flow tests that reach CREATE_ENTRY let the real async_setup_entry run, so the library made real HTTP calls to api.smartcielo.com and retried with backoff. Use the mock_setup_entry fixture that already exists in the package conftest. - hue: the grouped light for /groups/0 claimed a zone owner instead of bridge_home, so it was not filtered out and the group setup retry loop slept 5 x 0.5s waiting for a zone that can never resolve. - roborock: patch MAP_SLEEP in the selected map test. - aurora_abb_powerone: patch the coordinator retry sleep in the two tests that exercise the retry path. - jvc_projector: name the post power command delay POWER_SLEEP, matching TIMEOUT_SLEEP in the coordinator, and patch it in the test. - ekeybionyx: name the webhook deletion poll interval and patch it in the cleanup test. The six affected test suites run in 42s instead of 85s. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UNpmFuvt1tLRYxxx2Z6eha
This commit is contained in:
@@ -29,6 +29,8 @@ from .const import API_URL, DOMAIN, INTEGRATION_NAME, SCOPE
|
||||
# does not end with space or dot
|
||||
VALID_NAME_PATTERN = re.compile(r"^(?![\d\s])[\w\d \.]*[\w\d]$")
|
||||
|
||||
DELETION_POLL_INTERVAL = 5
|
||||
|
||||
|
||||
class ConfigFlowEkeyApi(ekey_bionyxpy.AbstractAuth):
|
||||
"""Authentication implementation used during config flow, without refresh.
|
||||
@@ -276,4 +278,4 @@ class OAuth2FlowHandler(
|
||||
][0]
|
||||
if self._data["system"].function_webhook_quotas["used"] == 0:
|
||||
break
|
||||
await asyncio.sleep(5)
|
||||
await asyncio.sleep(DELETION_POLL_INTERVAL)
|
||||
|
||||
@@ -15,6 +15,8 @@ from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||
from .coordinator import JVCConfigEntry
|
||||
from .entity import JvcProjectorEntity
|
||||
|
||||
POWER_SLEEP = 1
|
||||
|
||||
COMMANDS: list[str] = [
|
||||
cmd.Remote.MENU,
|
||||
cmd.Remote.UP,
|
||||
@@ -92,14 +94,14 @@ class JvcProjectorRemote(JvcProjectorEntity, RemoteEntity):
|
||||
async def async_turn_on(self, **kwargs: Any) -> None:
|
||||
"""Turn the device on."""
|
||||
await self.device.set(cmd.Power, cmd.Power.ON)
|
||||
await asyncio.sleep(1)
|
||||
await asyncio.sleep(POWER_SLEEP)
|
||||
await self.coordinator.async_refresh()
|
||||
|
||||
@override
|
||||
async def async_turn_off(self, **kwargs: Any) -> None:
|
||||
"""Turn the device off."""
|
||||
await self.device.set(cmd.Power, cmd.Power.OFF)
|
||||
await asyncio.sleep(1)
|
||||
await asyncio.sleep(POWER_SLEEP)
|
||||
await self.coordinator.async_refresh()
|
||||
|
||||
@override
|
||||
|
||||
@@ -14,6 +14,7 @@ async def test_unload_entry(hass: HomeAssistant) -> None:
|
||||
"""Test unloading the aurora_abb_powerone entry."""
|
||||
|
||||
with (
|
||||
patch("homeassistant.components.aurora_abb_powerone.coordinator.sleep"),
|
||||
patch("aurorapy.client.AuroraSerialClient.connect", return_value=None),
|
||||
patch(
|
||||
"aurorapy.client.AuroraSerialClient.serial_number",
|
||||
|
||||
@@ -278,6 +278,7 @@ async def test_sensor_unknown_error(
|
||||
await hass.async_block_till_done()
|
||||
|
||||
with (
|
||||
patch("homeassistant.components.aurora_abb_powerone.coordinator.sleep"),
|
||||
patch("aurorapy.client.AuroraSerialClient.connect", return_value=None),
|
||||
patch(
|
||||
"aurorapy.client.AuroraSerialClient.measure",
|
||||
|
||||
@@ -27,6 +27,7 @@ def _devices_payload(parsed: dict | None) -> MagicMock:
|
||||
return payload
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
async def test_full_config_flow_success(hass: HomeAssistant) -> None:
|
||||
"""Test successful config flow with valid API key."""
|
||||
mock_client = MagicMock()
|
||||
@@ -89,6 +90,7 @@ async def test_full_config_flow_abort_already_configured(
|
||||
(Exception, "unknown"),
|
||||
],
|
||||
)
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
async def test_form_error_mapping(
|
||||
hass: HomeAssistant, api_error: type[Exception], flow_error_key: str
|
||||
) -> None:
|
||||
@@ -127,6 +129,7 @@ async def test_form_error_mapping(
|
||||
assert result3["type"] is FlowResultType.CREATE_ENTRY
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("mock_setup_entry")
|
||||
async def test_form_error_mapping_invalid_auth(hass: HomeAssistant) -> None:
|
||||
"""Test AuthenticationError maps to invalid_auth."""
|
||||
|
||||
|
||||
@@ -250,6 +250,7 @@ async def test_no_available_webhooks(
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("current_request_with_host")
|
||||
@patch("homeassistant.components.ekeybionyx.config_flow.DELETION_POLL_INTERVAL", 0)
|
||||
async def test_cleanup(
|
||||
hass: HomeAssistant,
|
||||
hass_client_no_auth: ClientSessionGenerator,
|
||||
|
||||
@@ -1509,8 +1509,8 @@
|
||||
"on": true
|
||||
},
|
||||
"owner": {
|
||||
"rid": "7cee478d-6455-483a-9e32-9f9fdcbcc4f6",
|
||||
"rtype": "zone"
|
||||
"rid": "a3fbc86a-bf4c-4c69-899d-d6eafc37e288",
|
||||
"rtype": "bridge_home"
|
||||
},
|
||||
"type": "grouped_light"
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"""Tests for JVC Projector remote platform."""
|
||||
|
||||
from unittest.mock import MagicMock
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -31,6 +31,7 @@ async def test_entity_state(
|
||||
assert entity_registry.async_get(entity.entity_id)
|
||||
|
||||
|
||||
@patch("homeassistant.components.jvc_projector.remote.POWER_SLEEP", 0)
|
||||
async def test_commands(
|
||||
hass: HomeAssistant,
|
||||
mock_device: MagicMock,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
import copy
|
||||
from typing import Any
|
||||
from unittest.mock import AsyncMock, Mock, call
|
||||
from unittest.mock import AsyncMock, Mock, call, patch
|
||||
|
||||
import pytest
|
||||
from roborock import CleanTypeMapping, RoborockCommand
|
||||
@@ -87,6 +87,7 @@ async def test_update_success(
|
||||
("select.roborock_s7_maxv_selected_map", "Downstairs"),
|
||||
],
|
||||
)
|
||||
@patch("homeassistant.components.roborock.select.MAP_SLEEP", 0)
|
||||
async def test_update_success_selected_map(
|
||||
hass: HomeAssistant,
|
||||
setup_entry: MockConfigEntry,
|
||||
|
||||
Reference in New Issue
Block a user