72 lines
2.7 KiB
Python
72 lines
2.7 KiB
Python
"""Tests for the Freebox sensors."""
|
|
from copy import deepcopy
|
|
from unittest.mock import Mock
|
|
|
|
from freezegun.api import FrozenDateTimeFactory
|
|
|
|
from homeassistant.components.freebox import SCAN_INTERVAL
|
|
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 tests.common import async_fire_time_changed
|
|
|
|
|
|
async def test_disk(
|
|
hass: HomeAssistant, freezer: FrozenDateTimeFactory, router: Mock
|
|
) -> None:
|
|
"""Test disk sensor."""
|
|
await setup_platform(hass, SENSOR_DOMAIN)
|
|
|
|
# Initial state
|
|
assert (
|
|
router().storage.get_disks.return_value[2]["partitions"][0]["total_bytes"]
|
|
== 1960000000000
|
|
)
|
|
|
|
assert (
|
|
router().storage.get_disks.return_value[2]["partitions"][0]["free_bytes"]
|
|
== 1730000000000
|
|
)
|
|
|
|
assert hass.states.get("sensor.freebox_free_space").state == "88.27"
|
|
|
|
# Simulate a changed storage size
|
|
data_storage_get_disks_changed = deepcopy(DATA_STORAGE_GET_DISKS)
|
|
data_storage_get_disks_changed[2]["partitions"][0]["free_bytes"] = 880000000000
|
|
router().storage.get_disks.return_value = data_storage_get_disks_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_free_space").state == "44.9"
|
|
|
|
|
|
async def test_battery(
|
|
hass: HomeAssistant, freezer: FrozenDateTimeFactory, router: Mock
|
|
) -> None:
|
|
"""Test battery sensor."""
|
|
await setup_platform(hass, SENSOR_DOMAIN)
|
|
|
|
assert hass.states.get("sensor.telecommande_niveau_de_batterie").state == "100"
|
|
assert hass.states.get("sensor.ouverture_porte_niveau_de_batterie").state == "100"
|
|
assert hass.states.get("sensor.detecteur_niveau_de_batterie").state == "100"
|
|
|
|
# Simulate a changed battery
|
|
data_home_get_nodes_changed = deepcopy(DATA_HOME_GET_NODES)
|
|
data_home_get_nodes_changed[2]["show_endpoints"][3]["value"] = 25
|
|
data_home_get_nodes_changed[3]["show_endpoints"][3]["value"] = 50
|
|
data_home_get_nodes_changed[4]["show_endpoints"][3]["value"] = 75
|
|
router().home.get_home_nodes.return_value = data_home_get_nodes_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.telecommande_niveau_de_batterie").state == "25"
|
|
assert hass.states.get("sensor.ouverture_porte_niveau_de_batterie").state == "50"
|
|
assert hass.states.get("sensor.detecteur_niveau_de_batterie").state == "75"
|