From fbfe434e8baf88e23d30c34aa3ad57b3e4fe0128 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Mon, 11 Dec 2023 09:09:23 +0100 Subject: [PATCH] Migrate tag & tts tests to use freezegun (#105411) --- tests/components/tag/test_event.py | 20 ++++++++++------ tests/components/tag/test_init.py | 11 +++++---- tests/components/tts/test_init.py | 38 +++++++++++++++--------------- 3 files changed, 39 insertions(+), 30 deletions(-) diff --git a/tests/components/tag/test_event.py b/tests/components/tag/test_event.py index 7112a0cda4f..0338ed504d7 100644 --- a/tests/components/tag/test_event.py +++ b/tests/components/tag/test_event.py @@ -1,6 +1,6 @@ """Tests for the tag component.""" -from unittest.mock import patch +from freezegun.api import FrozenDateTimeFactory import pytest from homeassistant.components.tag import DOMAIN, EVENT_TAG_SCANNED, async_scan_tag @@ -40,7 +40,10 @@ def storage_setup_named_tag( async def test_named_tag_scanned_event( - hass: HomeAssistant, hass_ws_client: WebSocketGenerator, storage_setup_named_tag + hass: HomeAssistant, + hass_ws_client: WebSocketGenerator, + freezer: FrozenDateTimeFactory, + storage_setup_named_tag, ) -> None: """Test scanning named tag triggering event.""" assert await storage_setup_named_tag() @@ -50,8 +53,8 @@ async def test_named_tag_scanned_event( events = async_capture_events(hass, EVENT_TAG_SCANNED) now = dt_util.utcnow() - with patch("homeassistant.util.dt.utcnow", return_value=now): - await async_scan_tag(hass, TEST_TAG_ID, TEST_DEVICE_ID) + freezer.move_to(now) + await async_scan_tag(hass, TEST_TAG_ID, TEST_DEVICE_ID) assert len(events) == 1 @@ -83,7 +86,10 @@ def storage_setup_unnamed_tag(hass, hass_storage): async def test_unnamed_tag_scanned_event( - hass: HomeAssistant, hass_ws_client: WebSocketGenerator, storage_setup_unnamed_tag + hass: HomeAssistant, + hass_ws_client: WebSocketGenerator, + freezer: FrozenDateTimeFactory, + storage_setup_unnamed_tag, ) -> None: """Test scanning named tag triggering event.""" assert await storage_setup_unnamed_tag() @@ -93,8 +99,8 @@ async def test_unnamed_tag_scanned_event( events = async_capture_events(hass, EVENT_TAG_SCANNED) now = dt_util.utcnow() - with patch("homeassistant.util.dt.utcnow", return_value=now): - await async_scan_tag(hass, TEST_TAG_ID, TEST_DEVICE_ID) + freezer.move_to(now) + await async_scan_tag(hass, TEST_TAG_ID, TEST_DEVICE_ID) assert len(events) == 1 diff --git a/tests/components/tag/test_init.py b/tests/components/tag/test_init.py index 5d54f31b13a..d7f77c0d2e2 100644 --- a/tests/components/tag/test_init.py +++ b/tests/components/tag/test_init.py @@ -1,6 +1,6 @@ """Tests for the tag component.""" -from unittest.mock import patch +from freezegun.api import FrozenDateTimeFactory import pytest from homeassistant.components.tag import DOMAIN, TAGS, async_scan_tag @@ -76,7 +76,10 @@ async def test_ws_update( async def test_tag_scanned( - hass: HomeAssistant, hass_ws_client: WebSocketGenerator, storage_setup + hass: HomeAssistant, + hass_ws_client: WebSocketGenerator, + freezer: FrozenDateTimeFactory, + storage_setup, ) -> None: """Test scanning tags.""" assert await storage_setup() @@ -93,8 +96,8 @@ async def test_tag_scanned( assert "test tag" in result now = dt_util.utcnow() - with patch("homeassistant.util.dt.utcnow", return_value=now): - await async_scan_tag(hass, "new tag", "some_scanner") + freezer.move_to(now) + await async_scan_tag(hass, "new tag", "some_scanner") await client.send_json({"id": 7, "type": f"{DOMAIN}/list"}) resp = await client.receive_json() diff --git a/tests/components/tts/test_init.py b/tests/components/tts/test_init.py index 5be56edbc32..990d8d273ed 100644 --- a/tests/components/tts/test_init.py +++ b/tests/components/tts/test_init.py @@ -4,6 +4,7 @@ from http import HTTPStatus from typing import Any from unittest.mock import MagicMock, patch +from freezegun.api import FrozenDateTimeFactory import pytest from homeassistant.components import ffmpeg, tts @@ -78,6 +79,7 @@ async def test_config_entry_unload( hass: HomeAssistant, hass_client: ClientSessionGenerator, mock_tts_entity: MockTTSEntity, + freezer: FrozenDateTimeFactory, ) -> None: """Test we can unload config entry.""" entity_id = f"{tts.DOMAIN}.{TEST_DOMAIN}" @@ -93,26 +95,24 @@ async def test_config_entry_unload( calls = async_mock_service(hass, DOMAIN_MP, SERVICE_PLAY_MEDIA) now = dt_util.utcnow() - with patch("homeassistant.util.dt.utcnow", return_value=now): - await hass.services.async_call( - tts.DOMAIN, - "speak", - { - ATTR_ENTITY_ID: entity_id, - tts.ATTR_MEDIA_PLAYER_ENTITY_ID: "media_player.something", - tts.ATTR_MESSAGE: "There is someone at the door.", - }, - blocking=True, - ) - assert len(calls) == 1 + freezer.move_to(now) + await hass.services.async_call( + tts.DOMAIN, + "speak", + { + ATTR_ENTITY_ID: entity_id, + tts.ATTR_MEDIA_PLAYER_ENTITY_ID: "media_player.something", + tts.ATTR_MESSAGE: "There is someone at the door.", + }, + blocking=True, + ) + assert len(calls) == 1 - assert ( - await retrieve_media( - hass, hass_client, calls[0].data[ATTR_MEDIA_CONTENT_ID] - ) - == HTTPStatus.OK - ) - await hass.async_block_till_done() + assert ( + await retrieve_media(hass, hass_client, calls[0].data[ATTR_MEDIA_CONTENT_ID]) + == HTTPStatus.OK + ) + await hass.async_block_till_done() state = hass.states.get(entity_id) assert state is not None