mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Add some tests to Freebox (#99755)
This commit is contained in:
parent
9631c0ba2b
commit
8625bf7894
@ -1,29 +1,24 @@
|
|||||||
"""Tests for the Freebox sensors."""
|
"""Tests for the Freebox sensors."""
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from datetime import timedelta
|
|
||||||
from unittest.mock import Mock
|
from unittest.mock import Mock
|
||||||
|
|
||||||
from homeassistant.components.freebox.const import DOMAIN
|
from freezegun.api import FrozenDateTimeFactory
|
||||||
from homeassistant.const import CONF_HOST, CONF_PORT
|
|
||||||
|
from homeassistant.components.binary_sensor import DOMAIN as BINARY_SENSOR_DOMAIN
|
||||||
|
from homeassistant.components.freebox import SCAN_INTERVAL
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.setup import async_setup_component
|
|
||||||
import homeassistant.util.dt as dt_util
|
|
||||||
|
|
||||||
from .const import DATA_STORAGE_GET_RAIDS, MOCK_HOST, MOCK_PORT
|
from .common import setup_platform
|
||||||
|
from .const import DATA_STORAGE_GET_RAIDS
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, async_fire_time_changed
|
from tests.common import async_fire_time_changed
|
||||||
|
|
||||||
|
|
||||||
async def test_raid_array_degraded(hass: HomeAssistant, router: Mock) -> None:
|
async def test_raid_array_degraded(
|
||||||
|
hass: HomeAssistant, freezer: FrozenDateTimeFactory, router: Mock
|
||||||
|
) -> None:
|
||||||
"""Test raid array degraded binary sensor."""
|
"""Test raid array degraded binary sensor."""
|
||||||
entry = MockConfigEntry(
|
await setup_platform(hass, BINARY_SENSOR_DOMAIN)
|
||||||
domain=DOMAIN,
|
|
||||||
data={CONF_HOST: MOCK_HOST, CONF_PORT: MOCK_PORT},
|
|
||||||
unique_id=MOCK_HOST,
|
|
||||||
)
|
|
||||||
entry.add_to_hass(hass)
|
|
||||||
assert await async_setup_component(hass, DOMAIN, {})
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
|
|
||||||
assert (
|
assert (
|
||||||
hass.states.get("binary_sensor.freebox_server_r2_raid_array_0_degraded").state
|
hass.states.get("binary_sensor.freebox_server_r2_raid_array_0_degraded").state
|
||||||
@ -35,7 +30,8 @@ async def test_raid_array_degraded(hass: HomeAssistant, router: Mock) -> None:
|
|||||||
data_storage_get_raids_degraded[0]["degraded"] = True
|
data_storage_get_raids_degraded[0]["degraded"] = True
|
||||||
router().storage.get_raids.return_value = data_storage_get_raids_degraded
|
router().storage.get_raids.return_value = data_storage_get_raids_degraded
|
||||||
# Simulate an update
|
# Simulate an update
|
||||||
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(seconds=60))
|
freezer.tick(SCAN_INTERVAL)
|
||||||
|
async_fire_time_changed(hass)
|
||||||
# To execute the save
|
# To execute the save
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
assert (
|
assert (
|
||||||
|
@ -1,29 +1,19 @@
|
|||||||
"""Tests for the Freebox config flow."""
|
"""Tests for the Freebox config flow."""
|
||||||
from unittest.mock import ANY, Mock, patch
|
from unittest.mock import ANY, AsyncMock, Mock, patch
|
||||||
|
|
||||||
from pytest_unordered import unordered
|
from pytest_unordered import unordered
|
||||||
|
|
||||||
from homeassistant.components.button import DOMAIN as BUTTON_DOMAIN, SERVICE_PRESS
|
from homeassistant.components.button import DOMAIN as BUTTON_DOMAIN, SERVICE_PRESS
|
||||||
from homeassistant.components.freebox.const import DOMAIN
|
from homeassistant.const import ATTR_ENTITY_ID
|
||||||
from homeassistant.const import ATTR_ENTITY_ID, CONF_HOST, CONF_PORT
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.setup import async_setup_component
|
|
||||||
|
|
||||||
from .const import MOCK_HOST, MOCK_PORT
|
from .common import setup_platform
|
||||||
|
|
||||||
from tests.common import MockConfigEntry
|
|
||||||
|
|
||||||
|
|
||||||
async def test_reboot_button(hass: HomeAssistant, router: Mock) -> None:
|
async def test_reboot(hass: HomeAssistant, router: Mock) -> None:
|
||||||
"""Test reboot button."""
|
"""Test reboot button."""
|
||||||
entry = MockConfigEntry(
|
entry = await setup_platform(hass, BUTTON_DOMAIN)
|
||||||
domain=DOMAIN,
|
|
||||||
data={CONF_HOST: MOCK_HOST, CONF_PORT: MOCK_PORT},
|
|
||||||
unique_id=MOCK_HOST,
|
|
||||||
)
|
|
||||||
entry.add_to_hass(hass)
|
|
||||||
assert await async_setup_component(hass, DOMAIN, {})
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
assert hass.config_entries.async_entries() == unordered([entry, ANY])
|
assert hass.config_entries.async_entries() == unordered([entry, ANY])
|
||||||
|
|
||||||
assert router.call_count == 1
|
assert router.call_count == 1
|
||||||
@ -32,6 +22,7 @@ async def test_reboot_button(hass: HomeAssistant, router: Mock) -> None:
|
|||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.freebox.router.FreeboxRouter.reboot"
|
"homeassistant.components.freebox.router.FreeboxRouter.reboot"
|
||||||
) as mock_service:
|
) as mock_service:
|
||||||
|
mock_service.assert_not_called()
|
||||||
await hass.services.async_call(
|
await hass.services.async_call(
|
||||||
BUTTON_DOMAIN,
|
BUTTON_DOMAIN,
|
||||||
SERVICE_PRESS,
|
SERVICE_PRESS,
|
||||||
@ -42,3 +33,29 @@ async def test_reboot_button(hass: HomeAssistant, router: Mock) -> None:
|
|||||||
)
|
)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
mock_service.assert_called_once()
|
mock_service.assert_called_once()
|
||||||
|
|
||||||
|
|
||||||
|
async def test_mark_calls_as_read(hass: HomeAssistant, router: Mock) -> None:
|
||||||
|
"""Test mark calls as read button."""
|
||||||
|
entry = await setup_platform(hass, BUTTON_DOMAIN)
|
||||||
|
|
||||||
|
assert hass.config_entries.async_entries() == unordered([entry, ANY])
|
||||||
|
|
||||||
|
assert router.call_count == 1
|
||||||
|
assert router().open.call_count == 1
|
||||||
|
|
||||||
|
with patch(
|
||||||
|
"homeassistant.components.freebox.router.FreeboxRouter.call"
|
||||||
|
) as mock_service:
|
||||||
|
mock_service.mark_calls_log_as_read = AsyncMock()
|
||||||
|
mock_service.mark_calls_log_as_read.assert_not_called()
|
||||||
|
await hass.services.async_call(
|
||||||
|
BUTTON_DOMAIN,
|
||||||
|
SERVICE_PRESS,
|
||||||
|
service_data={
|
||||||
|
ATTR_ENTITY_ID: "button.mark_calls_as_read",
|
||||||
|
},
|
||||||
|
blocking=True,
|
||||||
|
)
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
mock_service.mark_calls_log_as_read.assert_called_once()
|
||||||
|
@ -9,11 +9,57 @@ from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
|
|||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
||||||
from .common import setup_platform
|
from .common import setup_platform
|
||||||
from .const import DATA_HOME_GET_NODES, DATA_STORAGE_GET_DISKS
|
from .const import (
|
||||||
|
DATA_CONNECTION_GET_STATUS,
|
||||||
|
DATA_HOME_GET_NODES,
|
||||||
|
DATA_STORAGE_GET_DISKS,
|
||||||
|
)
|
||||||
|
|
||||||
from tests.common import async_fire_time_changed
|
from tests.common import async_fire_time_changed
|
||||||
|
|
||||||
|
|
||||||
|
async def test_network_speed(
|
||||||
|
hass: HomeAssistant, freezer: FrozenDateTimeFactory, router: Mock
|
||||||
|
) -> None:
|
||||||
|
"""Test missed call sensor."""
|
||||||
|
await setup_platform(hass, SENSOR_DOMAIN)
|
||||||
|
|
||||||
|
assert hass.states.get("sensor.freebox_download_speed").state == "198.9"
|
||||||
|
assert hass.states.get("sensor.freebox_upload_speed").state == "1440.0"
|
||||||
|
|
||||||
|
# Simulate a changed speed
|
||||||
|
data_connection_get_status_changed = deepcopy(DATA_CONNECTION_GET_STATUS)
|
||||||
|
data_connection_get_status_changed["rate_down"] = 123400
|
||||||
|
data_connection_get_status_changed["rate_up"] = 432100
|
||||||
|
router().connection.get_status.return_value = data_connection_get_status_changed
|
||||||
|
# Simulate an update
|
||||||
|
freezer.tick(SCAN_INTERVAL)
|
||||||
|
async_fire_time_changed(hass)
|
||||||
|
# To execute the save
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
assert hass.states.get("sensor.freebox_download_speed").state == "123.4"
|
||||||
|
assert hass.states.get("sensor.freebox_upload_speed").state == "432.1"
|
||||||
|
|
||||||
|
|
||||||
|
async def test_call(
|
||||||
|
hass: HomeAssistant, freezer: FrozenDateTimeFactory, router: Mock
|
||||||
|
) -> None:
|
||||||
|
"""Test missed call sensor."""
|
||||||
|
await setup_platform(hass, SENSOR_DOMAIN)
|
||||||
|
|
||||||
|
assert hass.states.get("sensor.freebox_missed_calls").state == "3"
|
||||||
|
|
||||||
|
# Simulate we marked calls as read
|
||||||
|
data_call_get_calls_marked_as_read = []
|
||||||
|
router().call.get_calls_log.return_value = data_call_get_calls_marked_as_read
|
||||||
|
# Simulate an update
|
||||||
|
freezer.tick(SCAN_INTERVAL)
|
||||||
|
async_fire_time_changed(hass)
|
||||||
|
# To execute the save
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
assert hass.states.get("sensor.freebox_missed_calls").state == "0"
|
||||||
|
|
||||||
|
|
||||||
async def test_disk(
|
async def test_disk(
|
||||||
hass: HomeAssistant, freezer: FrozenDateTimeFactory, router: Mock
|
hass: HomeAssistant, freezer: FrozenDateTimeFactory, router: Mock
|
||||||
) -> None:
|
) -> None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user