mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 01:38:02 +00:00
Add diagnostics to Nord Pool (#130461)
This commit is contained in:
parent
285468d85f
commit
388473ecd7
16
homeassistant/components/nordpool/diagnostics.py
Normal file
16
homeassistant/components/nordpool/diagnostics.py
Normal file
@ -0,0 +1,16 @@
|
||||
"""Diagnostics support for Nord Pool."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from . import NordPoolConfigEntry
|
||||
|
||||
|
||||
async def async_get_config_entry_diagnostics(
|
||||
hass: HomeAssistant, entry: NordPoolConfigEntry
|
||||
) -> dict[str, Any]:
|
||||
"""Return diagnostics for Nord Pool config entry."""
|
||||
return {"raw": entry.runtime_data.data.raw}
|
283
tests/components/nordpool/snapshots/test_diagnostics.ambr
Normal file
283
tests/components/nordpool/snapshots/test_diagnostics.ambr
Normal file
@ -0,0 +1,283 @@
|
||||
# serializer version: 1
|
||||
# name: test_diagnostics
|
||||
dict({
|
||||
'raw': dict({
|
||||
'areaAverages': list([
|
||||
dict({
|
||||
'areaCode': 'SE3',
|
||||
'price': 900.74,
|
||||
}),
|
||||
dict({
|
||||
'areaCode': 'SE4',
|
||||
'price': 1166.12,
|
||||
}),
|
||||
]),
|
||||
'areaStates': list([
|
||||
dict({
|
||||
'areas': list([
|
||||
'SE3',
|
||||
'SE4',
|
||||
]),
|
||||
'state': 'Final',
|
||||
}),
|
||||
]),
|
||||
'blockPriceAggregates': list([
|
||||
dict({
|
||||
'averagePricePerArea': dict({
|
||||
'SE3': dict({
|
||||
'average': 422.87,
|
||||
'max': 1406.14,
|
||||
'min': 61.69,
|
||||
}),
|
||||
'SE4': dict({
|
||||
'average': 497.97,
|
||||
'max': 1648.25,
|
||||
'min': 65.19,
|
||||
}),
|
||||
}),
|
||||
'blockName': 'Off-peak 1',
|
||||
'deliveryEnd': '2024-11-05T07:00:00Z',
|
||||
'deliveryStart': '2024-11-04T23:00:00Z',
|
||||
}),
|
||||
dict({
|
||||
'averagePricePerArea': dict({
|
||||
'SE3': dict({
|
||||
'average': 1315.97,
|
||||
'max': 2512.65,
|
||||
'min': 925.05,
|
||||
}),
|
||||
'SE4': dict({
|
||||
'average': 1735.59,
|
||||
'max': 3533.03,
|
||||
'min': 1081.72,
|
||||
}),
|
||||
}),
|
||||
'blockName': 'Peak',
|
||||
'deliveryEnd': '2024-11-05T19:00:00Z',
|
||||
'deliveryStart': '2024-11-05T07:00:00Z',
|
||||
}),
|
||||
dict({
|
||||
'averagePricePerArea': dict({
|
||||
'SE3': dict({
|
||||
'average': 610.79,
|
||||
'max': 835.53,
|
||||
'min': 289.14,
|
||||
}),
|
||||
'SE4': dict({
|
||||
'average': 793.98,
|
||||
'max': 1112.57,
|
||||
'min': 349.21,
|
||||
}),
|
||||
}),
|
||||
'blockName': 'Off-peak 2',
|
||||
'deliveryEnd': '2024-11-05T23:00:00Z',
|
||||
'deliveryStart': '2024-11-05T19:00:00Z',
|
||||
}),
|
||||
]),
|
||||
'currency': 'SEK',
|
||||
'deliveryAreas': list([
|
||||
'SE3',
|
||||
'SE4',
|
||||
]),
|
||||
'deliveryDateCET': '2024-11-05',
|
||||
'exchangeRate': 11.6402,
|
||||
'market': 'DayAhead',
|
||||
'multiAreaEntries': list([
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T00:00:00Z',
|
||||
'deliveryStart': '2024-11-04T23:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 250.73,
|
||||
'SE4': 283.79,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T01:00:00Z',
|
||||
'deliveryStart': '2024-11-05T00:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 76.36,
|
||||
'SE4': 81.36,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T02:00:00Z',
|
||||
'deliveryStart': '2024-11-05T01:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 73.92,
|
||||
'SE4': 79.15,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T03:00:00Z',
|
||||
'deliveryStart': '2024-11-05T02:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 61.69,
|
||||
'SE4': 65.19,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T04:00:00Z',
|
||||
'deliveryStart': '2024-11-05T03:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 64.6,
|
||||
'SE4': 68.44,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T05:00:00Z',
|
||||
'deliveryStart': '2024-11-05T04:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 453.27,
|
||||
'SE4': 516.71,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T06:00:00Z',
|
||||
'deliveryStart': '2024-11-05T05:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 996.28,
|
||||
'SE4': 1240.85,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T07:00:00Z',
|
||||
'deliveryStart': '2024-11-05T06:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 1406.14,
|
||||
'SE4': 1648.25,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T08:00:00Z',
|
||||
'deliveryStart': '2024-11-05T07:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 1346.54,
|
||||
'SE4': 1570.5,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T09:00:00Z',
|
||||
'deliveryStart': '2024-11-05T08:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 1150.28,
|
||||
'SE4': 1345.37,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T10:00:00Z',
|
||||
'deliveryStart': '2024-11-05T09:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 1031.32,
|
||||
'SE4': 1206.51,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T11:00:00Z',
|
||||
'deliveryStart': '2024-11-05T10:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 927.37,
|
||||
'SE4': 1085.8,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T12:00:00Z',
|
||||
'deliveryStart': '2024-11-05T11:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 925.05,
|
||||
'SE4': 1081.72,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T13:00:00Z',
|
||||
'deliveryStart': '2024-11-05T12:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 949.49,
|
||||
'SE4': 1130.38,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T14:00:00Z',
|
||||
'deliveryStart': '2024-11-05T13:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 1042.03,
|
||||
'SE4': 1256.91,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T15:00:00Z',
|
||||
'deliveryStart': '2024-11-05T14:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 1258.89,
|
||||
'SE4': 1765.82,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T16:00:00Z',
|
||||
'deliveryStart': '2024-11-05T15:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 1816.45,
|
||||
'SE4': 2522.55,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T17:00:00Z',
|
||||
'deliveryStart': '2024-11-05T16:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 2512.65,
|
||||
'SE4': 3533.03,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T18:00:00Z',
|
||||
'deliveryStart': '2024-11-05T17:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 1819.83,
|
||||
'SE4': 2524.06,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T19:00:00Z',
|
||||
'deliveryStart': '2024-11-05T18:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 1011.77,
|
||||
'SE4': 1804.46,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T20:00:00Z',
|
||||
'deliveryStart': '2024-11-05T19:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 835.53,
|
||||
'SE4': 1112.57,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T21:00:00Z',
|
||||
'deliveryStart': '2024-11-05T20:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 796.19,
|
||||
'SE4': 1051.69,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T22:00:00Z',
|
||||
'deliveryStart': '2024-11-05T21:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 522.3,
|
||||
'SE4': 662.44,
|
||||
}),
|
||||
}),
|
||||
dict({
|
||||
'deliveryEnd': '2024-11-05T23:00:00Z',
|
||||
'deliveryStart': '2024-11-05T22:00:00Z',
|
||||
'entryPerArea': dict({
|
||||
'SE3': 289.14,
|
||||
'SE4': 349.21,
|
||||
}),
|
||||
}),
|
||||
]),
|
||||
'updatedAt': '2024-11-04T12:15:03.9456464Z',
|
||||
'version': 3,
|
||||
}),
|
||||
})
|
||||
# ---
|
23
tests/components/nordpool/test_diagnostics.py
Normal file
23
tests/components/nordpool/test_diagnostics.py
Normal file
@ -0,0 +1,23 @@
|
||||
"""Test Nord Pool diagnostics."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from syrupy.assertion import SnapshotAssertion
|
||||
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from tests.components.diagnostics import get_diagnostics_for_config_entry
|
||||
from tests.typing import ClientSessionGenerator
|
||||
|
||||
|
||||
async def test_diagnostics(
|
||||
hass: HomeAssistant,
|
||||
hass_client: ClientSessionGenerator,
|
||||
load_int: ConfigEntry,
|
||||
snapshot: SnapshotAssertion,
|
||||
) -> None:
|
||||
"""Test generating diagnostics for a config entry."""
|
||||
assert (
|
||||
await get_diagnostics_for_config_entry(hass, hass_client, load_int) == snapshot
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user