mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 18:57:06 +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."""
|
||||
from copy import deepcopy
|
||||
from datetime import timedelta
|
||||
from unittest.mock import Mock
|
||||
|
||||
from homeassistant.components.freebox.const import DOMAIN
|
||||
from homeassistant.const import CONF_HOST, CONF_PORT
|
||||
from freezegun.api import FrozenDateTimeFactory
|
||||
|
||||
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.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."""
|
||||
entry = MockConfigEntry(
|
||||
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()
|
||||
await setup_platform(hass, BINARY_SENSOR_DOMAIN)
|
||||
|
||||
assert (
|
||||
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
|
||||
router().storage.get_raids.return_value = data_storage_get_raids_degraded
|
||||
# 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
|
||||
await hass.async_block_till_done()
|
||||
assert (
|
||||
|
@ -1,29 +1,19 @@
|
||||
"""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 homeassistant.components.button import DOMAIN as BUTTON_DOMAIN, SERVICE_PRESS
|
||||
from homeassistant.components.freebox.const import DOMAIN
|
||||
from homeassistant.const import ATTR_ENTITY_ID, CONF_HOST, CONF_PORT
|
||||
from homeassistant.const import ATTR_ENTITY_ID
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from .const import MOCK_HOST, MOCK_PORT
|
||||
|
||||
from tests.common import MockConfigEntry
|
||||
from .common import setup_platform
|
||||
|
||||
|
||||
async def test_reboot_button(hass: HomeAssistant, router: Mock) -> None:
|
||||
async def test_reboot(hass: HomeAssistant, router: Mock) -> None:
|
||||
"""Test reboot button."""
|
||||
entry = MockConfigEntry(
|
||||
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()
|
||||
entry = await setup_platform(hass, BUTTON_DOMAIN)
|
||||
|
||||
assert hass.config_entries.async_entries() == unordered([entry, ANY])
|
||||
|
||||
assert router.call_count == 1
|
||||
@ -32,6 +22,7 @@ async def test_reboot_button(hass: HomeAssistant, router: Mock) -> None:
|
||||
with patch(
|
||||
"homeassistant.components.freebox.router.FreeboxRouter.reboot"
|
||||
) as mock_service:
|
||||
mock_service.assert_not_called()
|
||||
await hass.services.async_call(
|
||||
BUTTON_DOMAIN,
|
||||
SERVICE_PRESS,
|
||||
@ -42,3 +33,29 @@ async def test_reboot_button(hass: HomeAssistant, router: Mock) -> None:
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
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 .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
|
||||
|
||||
|
||||
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(
|
||||
hass: HomeAssistant, freezer: FrozenDateTimeFactory, router: Mock
|
||||
) -> None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user