Tibber diagnostics (#64472)

Co-authored-by: Philip Allgaier <mail@spacegaier.de>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Franck Nijhof <git@frenck.dev>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
Daniel Hjelseth Høyer 2022-01-20 15:03:14 +01:00 committed by GitHub
parent b8ecb98fd6
commit 549afff307
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 149 additions and 44 deletions

View file

@ -5,44 +5,20 @@ from homeassistant.components.recorder.statistics import statistics_during_perio
from homeassistant.components.tibber.sensor import TibberDataCoordinator
from homeassistant.util import dt as dt_util
from .test_common import CONSUMPTION_DATA_1, mock_get_homes
from tests.common import async_init_recorder_component
from tests.components.recorder.common import async_wait_recording_done_without_instance
_CONSUMPTION_DATA_1 = [
{
"from": "2022-01-03T00:00:00.000+01:00",
"totalCost": 1.1,
"consumption": 2.1,
},
{
"from": "2022-01-03T01:00:00.000+01:00",
"totalCost": 1.2,
"consumption": 2.2,
},
{
"from": "2022-01-03T02:00:00.000+01:00",
"totalCost": 1.3,
"consumption": 2.3,
},
]
async def test_async_setup_entry(hass):
"""Test setup Tibber."""
await async_init_recorder_component(hass)
def _get_homes():
tibber_home = AsyncMock()
tibber_home.name = "Name"
tibber_home.home_id = "home_id"
tibber_home.currency = "NOK"
tibber_home.get_historic_data.return_value = _CONSUMPTION_DATA_1
return [tibber_home]
tibber_connection = AsyncMock()
tibber_connection.name = "tibber"
tibber_connection.fetch_consumption_data_active_homes.return_value = None
tibber_connection.get_homes = _get_homes
tibber_connection.get_homes = mock_get_homes
coordinator = TibberDataCoordinator(hass, tibber_connection)
await coordinator._async_update_data()
@ -54,7 +30,7 @@ async def test_async_setup_entry(hass):
stats = await hass.async_add_executor_job(
statistics_during_period,
hass,
dt_util.parse_datetime(_CONSUMPTION_DATA_1[0]["from"]),
dt_util.parse_datetime(CONSUMPTION_DATA_1[0]["from"]),
None,
[statistic_id],
"hour",
@ -65,14 +41,14 @@ async def test_async_setup_entry(hass):
assert len(stats[statistic_id]) == 3
_sum = 0
for k, stat in enumerate(stats[statistic_id]):
assert stat["start"] == dt_util.parse_datetime(_CONSUMPTION_DATA_1[k]["from"])
assert stat["state"] == _CONSUMPTION_DATA_1[k]["consumption"]
assert stat["start"] == dt_util.parse_datetime(CONSUMPTION_DATA_1[k]["from"])
assert stat["state"] == CONSUMPTION_DATA_1[k]["consumption"]
assert stat["mean"] is None
assert stat["min"] is None
assert stat["max"] is None
assert stat["last_reset"] is None
_sum += _CONSUMPTION_DATA_1[k]["consumption"]
_sum += CONSUMPTION_DATA_1[k]["consumption"]
assert stat["sum"] == _sum
# Validate cost
@ -81,7 +57,7 @@ async def test_async_setup_entry(hass):
stats = await hass.async_add_executor_job(
statistics_during_period,
hass,
dt_util.parse_datetime(_CONSUMPTION_DATA_1[0]["from"]),
dt_util.parse_datetime(CONSUMPTION_DATA_1[0]["from"]),
None,
[statistic_id],
"hour",
@ -92,12 +68,12 @@ async def test_async_setup_entry(hass):
assert len(stats[statistic_id]) == 3
_sum = 0
for k, stat in enumerate(stats[statistic_id]):
assert stat["start"] == dt_util.parse_datetime(_CONSUMPTION_DATA_1[k]["from"])
assert stat["state"] == _CONSUMPTION_DATA_1[k]["totalCost"]
assert stat["start"] == dt_util.parse_datetime(CONSUMPTION_DATA_1[k]["from"])
assert stat["state"] == CONSUMPTION_DATA_1[k]["totalCost"]
assert stat["mean"] is None
assert stat["min"] is None
assert stat["max"] is None
assert stat["last_reset"] is None
_sum += _CONSUMPTION_DATA_1[k]["totalCost"]
_sum += CONSUMPTION_DATA_1[k]["totalCost"]
assert stat["sum"] == _sum