From f4fd3633b49e062598e94a41d66a2380f89a5e1f Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Mon, 19 Feb 2024 20:16:06 +0100 Subject: [PATCH] Improve timing mqtt integration discovery test (#110960) * Improve timing mqtt integration discovery test * Remove condition --- tests/components/mqtt/test_discovery.py | 27 ++++++++++--------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/tests/components/mqtt/test_discovery.py b/tests/components/mqtt/test_discovery.py index 3f8269c7281..f86800fd95f 100644 --- a/tests/components/mqtt/test_discovery.py +++ b/tests/components/mqtt/test_discovery.py @@ -1523,25 +1523,20 @@ async def test_mqtt_integration_discovery_subscribe_unsubscribe( """Test mqtt step.""" return self.async_abort(reason="already_configured") - with mock_config_flow("comp", TestFlow): - await asyncio.sleep(0) - assert ("comp/discovery/#", 0) in help_all_subscribe_calls(mqtt_client_mock) - assert not mqtt_client_mock.unsubscribe.called + assert not mqtt_client_mock.unsubscribe.called + wait_unsub = asyncio.Event() + + def _mock_unsubscribe(topics: list[str]) -> tuple[int, int]: + wait_unsub.set() + return (0, 0) + + with mock_config_flow("comp", TestFlow), patch.object( + mqtt_client_mock, "unsubscribe", side_effect=_mock_unsubscribe + ): async_fire_mqtt_message(hass, "comp/discovery/bla/config", "") - await asyncio.sleep(0) - await hass.async_block_till_done() - await hass.async_block_till_done() - await hass.async_block_till_done() + await wait_unsub.wait() mqtt_client_mock.unsubscribe.assert_called_once_with(["comp/discovery/#"]) - mqtt_client_mock.unsubscribe.reset_mock() - - async_fire_mqtt_message(hass, "comp/discovery/bla/config", "") - await asyncio.sleep(0) - await hass.async_block_till_done() - await hass.async_block_till_done() - await hass.async_block_till_done() - assert not mqtt_client_mock.unsubscribe.called @patch("homeassistant.components.mqtt.PLATFORMS", [])