mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Use freezegun in version tests (#99047)
This commit is contained in:
parent
f99743bedb
commit
81aa35a9ce
@ -4,6 +4,8 @@ from __future__ import annotations
|
|||||||
from typing import Any, Final
|
from typing import Any, Final
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
|
from freezegun.api import FrozenDateTimeFactory
|
||||||
|
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from homeassistant.components.version.const import (
|
from homeassistant.components.version.const import (
|
||||||
DEFAULT_CONFIGURATION,
|
DEFAULT_CONFIGURATION,
|
||||||
@ -14,7 +16,6 @@ from homeassistant.components.version.const import (
|
|||||||
)
|
)
|
||||||
from homeassistant.const import CONF_NAME
|
from homeassistant.const import CONF_NAME
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.util import dt as dt_util
|
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, async_fire_time_changed
|
from tests.common import MockConfigEntry, async_fire_time_changed
|
||||||
|
|
||||||
@ -37,6 +38,7 @@ TEST_DEFAULT_IMPORT_CONFIG: Final = {
|
|||||||
|
|
||||||
async def mock_get_version_update(
|
async def mock_get_version_update(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
|
freezer: FrozenDateTimeFactory,
|
||||||
version: str = MOCK_VERSION,
|
version: str = MOCK_VERSION,
|
||||||
data: dict[str, Any] = MOCK_VERSION_DATA,
|
data: dict[str, Any] = MOCK_VERSION_DATA,
|
||||||
side_effect: Exception = None,
|
side_effect: Exception = None,
|
||||||
@ -47,9 +49,8 @@ async def mock_get_version_update(
|
|||||||
return_value=(version, data),
|
return_value=(version, data),
|
||||||
side_effect=side_effect,
|
side_effect=side_effect,
|
||||||
):
|
):
|
||||||
async_fire_time_changed(
|
freezer.tick(UPDATE_COORDINATOR_UPDATE_INTERVAL)
|
||||||
hass, dt_util.utcnow() + UPDATE_COORDINATOR_UPDATE_INTERVAL
|
async_fire_time_changed(hass)
|
||||||
)
|
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
"""The test for the version sensor platform."""
|
"""The test for the version sensor platform."""
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from freezegun.api import FrozenDateTimeFactory
|
||||||
from pyhaversion.exceptions import HaVersionException
|
from pyhaversion.exceptions import HaVersionException
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
@ -19,15 +20,19 @@ async def test_version_sensor(hass: HomeAssistant) -> None:
|
|||||||
assert "channel" not in state.attributes
|
assert "channel" not in state.attributes
|
||||||
|
|
||||||
|
|
||||||
async def test_update(hass: HomeAssistant, caplog: pytest.LogCaptureFixture) -> None:
|
async def test_update(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
caplog: pytest.LogCaptureFixture,
|
||||||
|
freezer: FrozenDateTimeFactory,
|
||||||
|
) -> None:
|
||||||
"""Test updates."""
|
"""Test updates."""
|
||||||
await setup_version_integration(hass)
|
await setup_version_integration(hass)
|
||||||
assert hass.states.get("sensor.local_installation").state == MOCK_VERSION
|
assert hass.states.get("sensor.local_installation").state == MOCK_VERSION
|
||||||
|
|
||||||
await mock_get_version_update(hass, version="1970.1.1")
|
await mock_get_version_update(hass, freezer, version="1970.1.1")
|
||||||
assert hass.states.get("sensor.local_installation").state == "1970.1.1"
|
assert hass.states.get("sensor.local_installation").state == "1970.1.1"
|
||||||
|
|
||||||
assert "Error fetching version data" not in caplog.text
|
assert "Error fetching version data" not in caplog.text
|
||||||
await mock_get_version_update(hass, side_effect=HaVersionException)
|
await mock_get_version_update(hass, freezer, side_effect=HaVersionException)
|
||||||
assert hass.states.get("sensor.local_installation").state == "unavailable"
|
assert hass.states.get("sensor.local_installation").state == "unavailable"
|
||||||
assert "Error fetching version data" in caplog.text
|
assert "Error fetching version data" in caplog.text
|
||||||
|
Loading…
x
Reference in New Issue
Block a user