Migrate tag & tts tests to use freezegun (#105411)
This commit is contained in:
parent
c89c2f9392
commit
fbfe434e8b
3 changed files with 39 additions and 30 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue