Fix updating of statistics metadata name (#77207)

* Fix updating of statistics metadata name

* Fix test

* Test renaming
This commit is contained in:
Erik Montnemery 2022-08-23 17:51:17 +02:00 committed by GitHub
parent b1d249c391
commit f61edf0778
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 1 deletions

View File

@ -267,12 +267,14 @@ def _update_or_add_metadata(
if (
old_metadata["has_mean"] != new_metadata["has_mean"]
or old_metadata["has_sum"] != new_metadata["has_sum"]
or old_metadata["name"] != new_metadata["name"]
or old_metadata["unit_of_measurement"] != new_metadata["unit_of_measurement"]
):
session.query(StatisticsMeta).filter_by(statistic_id=statistic_id).update(
{
StatisticsMeta.has_mean: new_metadata["has_mean"],
StatisticsMeta.has_sum: new_metadata["has_sum"],
StatisticsMeta.name: new_metadata["name"],
StatisticsMeta.unit_of_measurement: new_metadata["unit_of_measurement"],
},
synchronize_session=False,

View File

@ -161,6 +161,7 @@ def mock_sensor_statistics():
"unit_of_measurement": "dogs",
"has_mean": True,
"has_sum": False,
"name": None,
},
"stat": {"start": start},
}
@ -599,7 +600,7 @@ async def test_import_statistics(
]
}
# Update the previously inserted statistics
# Update the previously inserted statistics + rename
external_statistics = {
"start": period1,
"max": 1,
@ -609,8 +610,34 @@ async def test_import_statistics(
"state": 4,
"sum": 5,
}
external_metadata["name"] = "Total imported energy renamed"
import_fn(hass, external_metadata, (external_statistics,))
await async_wait_recording_done(hass)
statistic_ids = list_statistic_ids(hass)
assert statistic_ids == [
{
"has_mean": False,
"has_sum": True,
"statistic_id": statistic_id,
"name": "Total imported energy renamed",
"source": source,
"unit_of_measurement": "kWh",
}
]
metadata = get_metadata(hass, statistic_ids=(statistic_id,))
assert metadata == {
statistic_id: (
1,
{
"has_mean": False,
"has_sum": True,
"name": "Total imported energy renamed",
"source": source,
"statistic_id": statistic_id,
"unit_of_measurement": "kWh",
},
)
}
stats = statistics_during_period(hass, zero, period="hour")
assert stats == {
statistic_id: [
@ -639,6 +666,7 @@ async def test_import_statistics(
]
}
# Adjust the statistics
await client.send_json(
{
"id": 1,