Migrate tag & tts tests to use freezegun (#105411)

This commit is contained in:
Jan-Philipp Benecke 2023-12-11 09:09:23 +01:00 committed by GitHub
parent c89c2f9392
commit fbfe434e8b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 30 deletions

View file

@ -1,6 +1,6 @@
"""Tests for the tag component.""" """Tests for the tag component."""
from unittest.mock import patch
from freezegun.api import FrozenDateTimeFactory
import pytest import pytest
from homeassistant.components.tag import DOMAIN, EVENT_TAG_SCANNED, async_scan_tag 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( 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: ) -> None:
"""Test scanning named tag triggering event.""" """Test scanning named tag triggering event."""
assert await storage_setup_named_tag() assert await storage_setup_named_tag()
@ -50,7 +53,7 @@ async def test_named_tag_scanned_event(
events = async_capture_events(hass, EVENT_TAG_SCANNED) events = async_capture_events(hass, EVENT_TAG_SCANNED)
now = dt_util.utcnow() now = dt_util.utcnow()
with patch("homeassistant.util.dt.utcnow", return_value=now): freezer.move_to(now)
await async_scan_tag(hass, TEST_TAG_ID, TEST_DEVICE_ID) await async_scan_tag(hass, TEST_TAG_ID, TEST_DEVICE_ID)
assert len(events) == 1 assert len(events) == 1
@ -83,7 +86,10 @@ def storage_setup_unnamed_tag(hass, hass_storage):
async def test_unnamed_tag_scanned_event( 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: ) -> None:
"""Test scanning named tag triggering event.""" """Test scanning named tag triggering event."""
assert await storage_setup_unnamed_tag() assert await storage_setup_unnamed_tag()
@ -93,7 +99,7 @@ async def test_unnamed_tag_scanned_event(
events = async_capture_events(hass, EVENT_TAG_SCANNED) events = async_capture_events(hass, EVENT_TAG_SCANNED)
now = dt_util.utcnow() now = dt_util.utcnow()
with patch("homeassistant.util.dt.utcnow", return_value=now): freezer.move_to(now)
await async_scan_tag(hass, TEST_TAG_ID, TEST_DEVICE_ID) await async_scan_tag(hass, TEST_TAG_ID, TEST_DEVICE_ID)
assert len(events) == 1 assert len(events) == 1

View file

@ -1,6 +1,6 @@
"""Tests for the tag component.""" """Tests for the tag component."""
from unittest.mock import patch
from freezegun.api import FrozenDateTimeFactory
import pytest import pytest
from homeassistant.components.tag import DOMAIN, TAGS, async_scan_tag from homeassistant.components.tag import DOMAIN, TAGS, async_scan_tag
@ -76,7 +76,10 @@ async def test_ws_update(
async def test_tag_scanned( async def test_tag_scanned(
hass: HomeAssistant, hass_ws_client: WebSocketGenerator, storage_setup hass: HomeAssistant,
hass_ws_client: WebSocketGenerator,
freezer: FrozenDateTimeFactory,
storage_setup,
) -> None: ) -> None:
"""Test scanning tags.""" """Test scanning tags."""
assert await storage_setup() assert await storage_setup()
@ -93,7 +96,7 @@ async def test_tag_scanned(
assert "test tag" in result assert "test tag" in result
now = dt_util.utcnow() now = dt_util.utcnow()
with patch("homeassistant.util.dt.utcnow", return_value=now): freezer.move_to(now)
await async_scan_tag(hass, "new tag", "some_scanner") await async_scan_tag(hass, "new tag", "some_scanner")
await client.send_json({"id": 7, "type": f"{DOMAIN}/list"}) await client.send_json({"id": 7, "type": f"{DOMAIN}/list"})

View file

@ -4,6 +4,7 @@ from http import HTTPStatus
from typing import Any from typing import Any
from unittest.mock import MagicMock, patch from unittest.mock import MagicMock, patch
from freezegun.api import FrozenDateTimeFactory
import pytest import pytest
from homeassistant.components import ffmpeg, tts from homeassistant.components import ffmpeg, tts
@ -78,6 +79,7 @@ async def test_config_entry_unload(
hass: HomeAssistant, hass: HomeAssistant,
hass_client: ClientSessionGenerator, hass_client: ClientSessionGenerator,
mock_tts_entity: MockTTSEntity, mock_tts_entity: MockTTSEntity,
freezer: FrozenDateTimeFactory,
) -> None: ) -> None:
"""Test we can unload config entry.""" """Test we can unload config entry."""
entity_id = f"{tts.DOMAIN}.{TEST_DOMAIN}" entity_id = f"{tts.DOMAIN}.{TEST_DOMAIN}"
@ -93,7 +95,7 @@ async def test_config_entry_unload(
calls = async_mock_service(hass, DOMAIN_MP, SERVICE_PLAY_MEDIA) calls = async_mock_service(hass, DOMAIN_MP, SERVICE_PLAY_MEDIA)
now = dt_util.utcnow() now = dt_util.utcnow()
with patch("homeassistant.util.dt.utcnow", return_value=now): freezer.move_to(now)
await hass.services.async_call( await hass.services.async_call(
tts.DOMAIN, tts.DOMAIN,
"speak", "speak",
@ -107,9 +109,7 @@ async def test_config_entry_unload(
assert len(calls) == 1 assert len(calls) == 1
assert ( assert (
await retrieve_media( await retrieve_media(hass, hass_client, calls[0].data[ATTR_MEDIA_CONTENT_ID])
hass, hass_client, calls[0].data[ATTR_MEDIA_CONTENT_ID]
)
== HTTPStatus.OK == HTTPStatus.OK
) )
await hass.async_block_till_done() await hass.async_block_till_done()