mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 02:07:09 +00:00
Change Tibber get_prices action to return datetimes as str (#123901)
This commit is contained in:
parent
a95c232f11
commit
8cdd5de75c
@ -52,7 +52,7 @@ async def __get_prices(call: ServiceCall, *, hass: HomeAssistant) -> ServiceResp
|
|||||||
]
|
]
|
||||||
price_data = [
|
price_data = [
|
||||||
{
|
{
|
||||||
"start_time": dt.datetime.fromisoformat(price["startsAt"]),
|
"start_time": price["startsAt"],
|
||||||
"price": price["total"],
|
"price": price["total"],
|
||||||
"level": price["level"],
|
"level": price["level"],
|
||||||
}
|
}
|
||||||
@ -61,7 +61,9 @@ async def __get_prices(call: ServiceCall, *, hass: HomeAssistant) -> ServiceResp
|
|||||||
]
|
]
|
||||||
|
|
||||||
selected_data = [
|
selected_data = [
|
||||||
price for price in price_data if start <= price["start_time"] < end
|
price
|
||||||
|
for price in price_data
|
||||||
|
if start <= dt.datetime.fromisoformat(price["start_time"]) < end
|
||||||
]
|
]
|
||||||
tibber_prices[home_nickname] = selected_data
|
tibber_prices[home_nickname] = selected_data
|
||||||
|
|
||||||
|
@ -138,29 +138,24 @@ async def test_get_prices(
|
|||||||
"prices": {
|
"prices": {
|
||||||
"first_home": [
|
"first_home": [
|
||||||
{
|
{
|
||||||
"start_time": dt.datetime.fromisoformat(START_TIME.isoformat()),
|
"start_time": START_TIME.isoformat(),
|
||||||
# back and forth conversion to deal with HAFakeDatetime vs real datetime being different types
|
|
||||||
"price": 0.36914,
|
"price": 0.36914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"start_time": dt.datetime.fromisoformat(
|
"start_time": (START_TIME + dt.timedelta(hours=1)).isoformat(),
|
||||||
(START_TIME + dt.timedelta(hours=1)).isoformat()
|
|
||||||
),
|
|
||||||
"price": 0.36914,
|
"price": 0.36914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"second_home": [
|
"second_home": [
|
||||||
{
|
{
|
||||||
"start_time": dt.datetime.fromisoformat(START_TIME.isoformat()),
|
"start_time": START_TIME.isoformat(),
|
||||||
"price": 0.36914,
|
"price": 0.36914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"start_time": dt.datetime.fromisoformat(
|
"start_time": (START_TIME + dt.timedelta(hours=1)).isoformat(),
|
||||||
(START_TIME + dt.timedelta(hours=1)).isoformat()
|
|
||||||
),
|
|
||||||
"price": 0.36914,
|
"price": 0.36914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
@ -193,24 +188,24 @@ async def test_get_prices_start_tomorrow(
|
|||||||
"prices": {
|
"prices": {
|
||||||
"first_home": [
|
"first_home": [
|
||||||
{
|
{
|
||||||
"start_time": tomorrow,
|
"start_time": tomorrow.isoformat(),
|
||||||
"price": 0.46914,
|
"price": 0.46914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"start_time": (tomorrow + dt.timedelta(hours=1)),
|
"start_time": (tomorrow + dt.timedelta(hours=1)).isoformat(),
|
||||||
"price": 0.46914,
|
"price": 0.46914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"second_home": [
|
"second_home": [
|
||||||
{
|
{
|
||||||
"start_time": tomorrow,
|
"start_time": tomorrow.isoformat(),
|
||||||
"price": 0.46914,
|
"price": 0.46914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"start_time": (tomorrow + dt.timedelta(hours=1)),
|
"start_time": (tomorrow + dt.timedelta(hours=1)).isoformat(),
|
||||||
"price": 0.46914,
|
"price": 0.46914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
@ -252,24 +247,24 @@ async def test_get_prices_with_timezones(
|
|||||||
"prices": {
|
"prices": {
|
||||||
"first_home": [
|
"first_home": [
|
||||||
{
|
{
|
||||||
"start_time": START_TIME,
|
"start_time": START_TIME.isoformat(),
|
||||||
"price": 0.36914,
|
"price": 0.36914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"start_time": START_TIME + dt.timedelta(hours=1),
|
"start_time": (START_TIME + dt.timedelta(hours=1)).isoformat(),
|
||||||
"price": 0.36914,
|
"price": 0.36914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"second_home": [
|
"second_home": [
|
||||||
{
|
{
|
||||||
"start_time": START_TIME,
|
"start_time": START_TIME.isoformat(),
|
||||||
"price": 0.36914,
|
"price": 0.36914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"start_time": START_TIME + dt.timedelta(hours=1),
|
"start_time": (START_TIME + dt.timedelta(hours=1)).isoformat(),
|
||||||
"price": 0.36914,
|
"price": 0.36914,
|
||||||
"level": "VERY_EXPENSIVE",
|
"level": "VERY_EXPENSIVE",
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user