mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Frontend wants a timestamp for the created_at/modified_at attributes (#122377)
This commit is contained in:
parent
bd97a09cae
commit
243a68fb1f
@ -132,8 +132,10 @@ def _entry_dict(entry: FloorEntry) -> dict[str, Any]:
|
|||||||
"""Convert entry to API format."""
|
"""Convert entry to API format."""
|
||||||
return {
|
return {
|
||||||
"aliases": list(entry.aliases),
|
"aliases": list(entry.aliases),
|
||||||
|
"created_at": entry.created_at.timestamp(),
|
||||||
"floor_id": entry.floor_id,
|
"floor_id": entry.floor_id,
|
||||||
"icon": entry.icon,
|
"icon": entry.icon,
|
||||||
"level": entry.level,
|
"level": entry.level,
|
||||||
"name": entry.name,
|
"name": entry.name,
|
||||||
|
"modified_at": entry.modified_at.timestamp(),
|
||||||
}
|
}
|
||||||
|
@ -157,8 +157,10 @@ def _entry_dict(entry: LabelEntry) -> dict[str, Any]:
|
|||||||
"""Convert entry to API format."""
|
"""Convert entry to API format."""
|
||||||
return {
|
return {
|
||||||
"color": entry.color,
|
"color": entry.color,
|
||||||
|
"created_at": entry.created_at.timestamp(),
|
||||||
"description": entry.description,
|
"description": entry.description,
|
||||||
"icon": entry.icon,
|
"icon": entry.icon,
|
||||||
"label_id": entry.label_id,
|
"label_id": entry.label_id,
|
||||||
"name": entry.name,
|
"name": entry.name,
|
||||||
|
"modified_at": entry.modified_at.timestamp(),
|
||||||
}
|
}
|
||||||
|
@ -87,8 +87,8 @@ class AreaEntry(NormalizedNameBaseRegistryEntry):
|
|||||||
"labels": list(self.labels),
|
"labels": list(self.labels),
|
||||||
"name": self.name,
|
"name": self.name,
|
||||||
"picture": self.picture,
|
"picture": self.picture,
|
||||||
"created_at": self.created_at.isoformat(),
|
"created_at": self.created_at.timestamp(),
|
||||||
"modified_at": self.modified_at.isoformat(),
|
"modified_at": self.modified_at.timestamp(),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
"""Test area_registry API."""
|
"""Test area_registry API."""
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from freezegun.api import FrozenDateTimeFactory
|
from freezegun.api import FrozenDateTimeFactory
|
||||||
import pytest
|
import pytest
|
||||||
from pytest_unordered import unordered
|
from pytest_unordered import unordered
|
||||||
@ -28,11 +30,11 @@ async def test_list_areas(
|
|||||||
freezer: FrozenDateTimeFactory,
|
freezer: FrozenDateTimeFactory,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test list entries."""
|
"""Test list entries."""
|
||||||
created_area1 = "2024-07-16T13:30:00.900075+00:00"
|
created_area1 = datetime.fromisoformat("2024-07-16T13:30:00.900075+00:00")
|
||||||
freezer.move_to(created_area1)
|
freezer.move_to(created_area1)
|
||||||
area1 = area_registry.async_create("mock 1")
|
area1 = area_registry.async_create("mock 1")
|
||||||
|
|
||||||
created_area2 = "2024-07-16T13:45:00.900075+00:00"
|
created_area2 = datetime.fromisoformat("2024-07-16T13:45:00.900075+00:00")
|
||||||
freezer.move_to(created_area2)
|
freezer.move_to(created_area2)
|
||||||
area2 = area_registry.async_create(
|
area2 = area_registry.async_create(
|
||||||
"mock 2",
|
"mock 2",
|
||||||
@ -55,8 +57,8 @@ async def test_list_areas(
|
|||||||
"labels": [],
|
"labels": [],
|
||||||
"name": "mock 1",
|
"name": "mock 1",
|
||||||
"picture": None,
|
"picture": None,
|
||||||
"created_at": created_area1,
|
"created_at": created_area1.timestamp(),
|
||||||
"modified_at": created_area1,
|
"modified_at": created_area1.timestamp(),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"aliases": unordered(["alias_1", "alias_2"]),
|
"aliases": unordered(["alias_1", "alias_2"]),
|
||||||
@ -66,8 +68,8 @@ async def test_list_areas(
|
|||||||
"labels": unordered(["label_1", "label_2"]),
|
"labels": unordered(["label_1", "label_2"]),
|
||||||
"name": "mock 2",
|
"name": "mock 2",
|
||||||
"picture": "/image/example.png",
|
"picture": "/image/example.png",
|
||||||
"created_at": created_area2,
|
"created_at": created_area2.timestamp(),
|
||||||
"modified_at": created_area2,
|
"modified_at": created_area2.timestamp(),
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -93,8 +95,8 @@ async def test_create_area(
|
|||||||
"labels": [],
|
"labels": [],
|
||||||
"name": "mock",
|
"name": "mock",
|
||||||
"picture": None,
|
"picture": None,
|
||||||
"created_at": utcnow().isoformat(),
|
"created_at": utcnow().timestamp(),
|
||||||
"modified_at": utcnow().isoformat(),
|
"modified_at": utcnow().timestamp(),
|
||||||
}
|
}
|
||||||
assert len(area_registry.areas) == 1
|
assert len(area_registry.areas) == 1
|
||||||
|
|
||||||
@ -121,8 +123,8 @@ async def test_create_area(
|
|||||||
"labels": unordered(["label_1", "label_2"]),
|
"labels": unordered(["label_1", "label_2"]),
|
||||||
"name": "mock 2",
|
"name": "mock 2",
|
||||||
"picture": "/image/example.png",
|
"picture": "/image/example.png",
|
||||||
"created_at": utcnow().isoformat(),
|
"created_at": utcnow().timestamp(),
|
||||||
"modified_at": utcnow().isoformat(),
|
"modified_at": utcnow().timestamp(),
|
||||||
}
|
}
|
||||||
assert len(area_registry.areas) == 2
|
assert len(area_registry.areas) == 2
|
||||||
|
|
||||||
@ -185,10 +187,10 @@ async def test_update_area(
|
|||||||
freezer: FrozenDateTimeFactory,
|
freezer: FrozenDateTimeFactory,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test update entry."""
|
"""Test update entry."""
|
||||||
created_at = "2024-07-16T13:30:00.900075+00:00"
|
created_at = datetime.fromisoformat("2024-07-16T13:30:00.900075+00:00")
|
||||||
freezer.move_to(created_at)
|
freezer.move_to(created_at)
|
||||||
area = area_registry.async_create("mock 1")
|
area = area_registry.async_create("mock 1")
|
||||||
modified_at = "2024-07-16T13:45:00.900075+00:00"
|
modified_at = datetime.fromisoformat("2024-07-16T13:45:00.900075+00:00")
|
||||||
freezer.move_to(modified_at)
|
freezer.move_to(modified_at)
|
||||||
|
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
@ -214,12 +216,12 @@ async def test_update_area(
|
|||||||
"labels": unordered(["label_1", "label_2"]),
|
"labels": unordered(["label_1", "label_2"]),
|
||||||
"name": "mock 2",
|
"name": "mock 2",
|
||||||
"picture": "/image/example.png",
|
"picture": "/image/example.png",
|
||||||
"created_at": created_at,
|
"created_at": created_at.timestamp(),
|
||||||
"modified_at": modified_at,
|
"modified_at": modified_at.timestamp(),
|
||||||
}
|
}
|
||||||
assert len(area_registry.areas) == 1
|
assert len(area_registry.areas) == 1
|
||||||
|
|
||||||
modified_at = "2024-07-16T13:50:00.900075+00:00"
|
modified_at = datetime.fromisoformat("2024-07-16T13:50:00.900075+00:00")
|
||||||
freezer.move_to(modified_at)
|
freezer.move_to(modified_at)
|
||||||
|
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
@ -244,8 +246,8 @@ async def test_update_area(
|
|||||||
"labels": [],
|
"labels": [],
|
||||||
"name": "mock 2",
|
"name": "mock 2",
|
||||||
"picture": None,
|
"picture": None,
|
||||||
"created_at": created_at,
|
"created_at": created_at.timestamp(),
|
||||||
"modified_at": modified_at,
|
"modified_at": modified_at.timestamp(),
|
||||||
}
|
}
|
||||||
assert len(area_registry.areas) == 1
|
assert len(area_registry.areas) == 1
|
||||||
|
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
"""Test floor registry API."""
|
"""Test floor registry API."""
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from freezegun.api import FrozenDateTimeFactory
|
||||||
import pytest
|
import pytest
|
||||||
from pytest_unordered import unordered
|
from pytest_unordered import unordered
|
||||||
|
|
||||||
from homeassistant.components.config import floor_registry
|
from homeassistant.components.config import floor_registry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers import floor_registry as fr
|
from homeassistant.helpers import floor_registry as fr
|
||||||
|
from homeassistant.util.dt import utcnow
|
||||||
|
|
||||||
from tests.typing import MockHAClientWebSocket, WebSocketGenerator
|
from tests.typing import MockHAClientWebSocket, WebSocketGenerator
|
||||||
|
|
||||||
@ -22,9 +26,15 @@ async def client_fixture(
|
|||||||
async def test_list_floors(
|
async def test_list_floors(
|
||||||
client: MockHAClientWebSocket,
|
client: MockHAClientWebSocket,
|
||||||
floor_registry: fr.FloorRegistry,
|
floor_registry: fr.FloorRegistry,
|
||||||
|
freezer: FrozenDateTimeFactory,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test list entries."""
|
"""Test list entries."""
|
||||||
|
created_1 = datetime.fromisoformat("2024-07-16T13:30:00.900075+00:00")
|
||||||
|
freezer.move_to(created_1)
|
||||||
floor_registry.async_create("First floor")
|
floor_registry.async_create("First floor")
|
||||||
|
|
||||||
|
created_2 = datetime.fromisoformat("2024-07-16T13:45:00.900075+00:00")
|
||||||
|
freezer.move_to(created_2)
|
||||||
floor_registry.async_create(
|
floor_registry.async_create(
|
||||||
name="Second floor",
|
name="Second floor",
|
||||||
aliases={"top floor", "attic"},
|
aliases={"top floor", "attic"},
|
||||||
@ -34,6 +44,12 @@ async def test_list_floors(
|
|||||||
|
|
||||||
assert len(floor_registry.floors) == 2
|
assert len(floor_registry.floors) == 2
|
||||||
|
|
||||||
|
# update first floor to change modified_at
|
||||||
|
floor_registry.async_update(
|
||||||
|
"first_floor",
|
||||||
|
name="First floor...",
|
||||||
|
)
|
||||||
|
|
||||||
await client.send_json_auto_id({"type": "config/floor_registry/list"})
|
await client.send_json_auto_id({"type": "config/floor_registry/list"})
|
||||||
|
|
||||||
msg = await client.receive_json()
|
msg = await client.receive_json()
|
||||||
@ -41,20 +57,25 @@ async def test_list_floors(
|
|||||||
assert len(msg["result"]) == len(floor_registry.floors)
|
assert len(msg["result"]) == len(floor_registry.floors)
|
||||||
assert msg["result"][0] == {
|
assert msg["result"][0] == {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
"created_at": created_1.timestamp(),
|
||||||
"icon": None,
|
"icon": None,
|
||||||
"floor_id": "first_floor",
|
"floor_id": "first_floor",
|
||||||
"name": "First floor",
|
"modified_at": created_2.timestamp(),
|
||||||
|
"name": "First floor...",
|
||||||
"level": None,
|
"level": None,
|
||||||
}
|
}
|
||||||
assert msg["result"][1] == {
|
assert msg["result"][1] == {
|
||||||
"aliases": unordered(["top floor", "attic"]),
|
"aliases": unordered(["top floor", "attic"]),
|
||||||
|
"created_at": created_2.timestamp(),
|
||||||
"icon": "mdi:home-floor-2",
|
"icon": "mdi:home-floor-2",
|
||||||
"floor_id": "second_floor",
|
"floor_id": "second_floor",
|
||||||
|
"modified_at": created_2.timestamp(),
|
||||||
"name": "Second floor",
|
"name": "Second floor",
|
||||||
"level": 2,
|
"level": 2,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.usefixtures("freezer")
|
||||||
async def test_create_floor(
|
async def test_create_floor(
|
||||||
client: MockHAClientWebSocket,
|
client: MockHAClientWebSocket,
|
||||||
floor_registry: fr.FloorRegistry,
|
floor_registry: fr.FloorRegistry,
|
||||||
@ -69,8 +90,10 @@ async def test_create_floor(
|
|||||||
assert len(floor_registry.floors) == 1
|
assert len(floor_registry.floors) == 1
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
"created_at": utcnow().timestamp(),
|
||||||
"icon": None,
|
"icon": None,
|
||||||
"floor_id": "first_floor",
|
"floor_id": "first_floor",
|
||||||
|
"modified_at": utcnow().timestamp(),
|
||||||
"name": "First floor",
|
"name": "First floor",
|
||||||
"level": None,
|
"level": None,
|
||||||
}
|
}
|
||||||
@ -90,8 +113,10 @@ async def test_create_floor(
|
|||||||
assert len(floor_registry.floors) == 2
|
assert len(floor_registry.floors) == 2
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"aliases": unordered(["top floor", "attic"]),
|
"aliases": unordered(["top floor", "attic"]),
|
||||||
|
"created_at": utcnow().timestamp(),
|
||||||
"icon": "mdi:home-floor-2",
|
"icon": "mdi:home-floor-2",
|
||||||
"floor_id": "second_floor",
|
"floor_id": "second_floor",
|
||||||
|
"modified_at": utcnow().timestamp(),
|
||||||
"name": "Second floor",
|
"name": "Second floor",
|
||||||
"level": 2,
|
"level": 2,
|
||||||
}
|
}
|
||||||
@ -163,10 +188,15 @@ async def test_delete_non_existing_floor(
|
|||||||
async def test_update_floor(
|
async def test_update_floor(
|
||||||
client: MockHAClientWebSocket,
|
client: MockHAClientWebSocket,
|
||||||
floor_registry: fr.FloorRegistry,
|
floor_registry: fr.FloorRegistry,
|
||||||
|
freezer: FrozenDateTimeFactory,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test update entry."""
|
"""Test update entry."""
|
||||||
|
created_at = datetime.fromisoformat("2024-07-16T13:30:00.900075+00:00")
|
||||||
|
freezer.move_to(created_at)
|
||||||
floor = floor_registry.async_create("First floor")
|
floor = floor_registry.async_create("First floor")
|
||||||
assert len(floor_registry.floors) == 1
|
assert len(floor_registry.floors) == 1
|
||||||
|
modified_at = datetime.fromisoformat("2024-07-16T13:45:00.900075+00:00")
|
||||||
|
freezer.move_to(modified_at)
|
||||||
|
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
{
|
{
|
||||||
@ -184,12 +214,16 @@ async def test_update_floor(
|
|||||||
assert len(floor_registry.floors) == 1
|
assert len(floor_registry.floors) == 1
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"aliases": unordered(["top floor", "attic"]),
|
"aliases": unordered(["top floor", "attic"]),
|
||||||
|
"created_at": created_at.timestamp(),
|
||||||
"icon": "mdi:home-floor-2",
|
"icon": "mdi:home-floor-2",
|
||||||
"floor_id": floor.floor_id,
|
"floor_id": floor.floor_id,
|
||||||
|
"modified_at": modified_at.timestamp(),
|
||||||
"name": "Second floor",
|
"name": "Second floor",
|
||||||
"level": 2,
|
"level": 2,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
modified_at = datetime.fromisoformat("2024-07-16T13:50:00.900075+00:00")
|
||||||
|
freezer.move_to(modified_at)
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
{
|
{
|
||||||
"floor_id": floor.floor_id,
|
"floor_id": floor.floor_id,
|
||||||
@ -206,8 +240,10 @@ async def test_update_floor(
|
|||||||
assert len(floor_registry.floors) == 1
|
assert len(floor_registry.floors) == 1
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
"created_at": created_at.timestamp(),
|
||||||
"icon": None,
|
"icon": None,
|
||||||
"floor_id": floor.floor_id,
|
"floor_id": floor.floor_id,
|
||||||
|
"modified_at": modified_at.timestamp(),
|
||||||
"name": "First floor",
|
"name": "First floor",
|
||||||
"level": None,
|
"level": None,
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
"""Test label registry API."""
|
"""Test label registry API."""
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from freezegun.api import FrozenDateTimeFactory
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from homeassistant.components.config import label_registry
|
from homeassistant.components.config import label_registry
|
||||||
@ -21,9 +24,15 @@ async def client_fixture(
|
|||||||
async def test_list_labels(
|
async def test_list_labels(
|
||||||
client: MockHAClientWebSocket,
|
client: MockHAClientWebSocket,
|
||||||
label_registry: lr.LabelRegistry,
|
label_registry: lr.LabelRegistry,
|
||||||
|
freezer: FrozenDateTimeFactory,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test list entries."""
|
"""Test list entries."""
|
||||||
|
created_1 = datetime.fromisoformat("2024-07-16T13:30:00.900075+00:00")
|
||||||
|
freezer.move_to(created_1)
|
||||||
label_registry.async_create("mock 1")
|
label_registry.async_create("mock 1")
|
||||||
|
|
||||||
|
created_2 = datetime.fromisoformat("2024-07-16T13:45:00.900075+00:00")
|
||||||
|
freezer.move_to(created_2)
|
||||||
label_registry.async_create(
|
label_registry.async_create(
|
||||||
name="mock 2",
|
name="mock 2",
|
||||||
color="#00FF00",
|
color="#00FF00",
|
||||||
@ -33,6 +42,12 @@ async def test_list_labels(
|
|||||||
|
|
||||||
assert len(label_registry.labels) == 2
|
assert len(label_registry.labels) == 2
|
||||||
|
|
||||||
|
# update mock 1 to change modified_at
|
||||||
|
label_registry.async_update(
|
||||||
|
"mock_1",
|
||||||
|
name="Mock 1...",
|
||||||
|
)
|
||||||
|
|
||||||
await client.send_json_auto_id({"type": "config/label_registry/list"})
|
await client.send_json_auto_id({"type": "config/label_registry/list"})
|
||||||
|
|
||||||
msg = await client.receive_json()
|
msg = await client.receive_json()
|
||||||
@ -40,16 +55,20 @@ async def test_list_labels(
|
|||||||
assert len(msg["result"]) == len(label_registry.labels)
|
assert len(msg["result"]) == len(label_registry.labels)
|
||||||
assert msg["result"][0] == {
|
assert msg["result"][0] == {
|
||||||
"color": None,
|
"color": None,
|
||||||
|
"created_at": created_1.timestamp(),
|
||||||
"description": None,
|
"description": None,
|
||||||
"icon": None,
|
"icon": None,
|
||||||
"label_id": "mock_1",
|
"label_id": "mock_1",
|
||||||
"name": "mock 1",
|
"modified_at": created_2.timestamp(),
|
||||||
|
"name": "Mock 1...",
|
||||||
}
|
}
|
||||||
assert msg["result"][1] == {
|
assert msg["result"][1] == {
|
||||||
"color": "#00FF00",
|
"color": "#00FF00",
|
||||||
|
"created_at": created_2.timestamp(),
|
||||||
"description": "This is the second label",
|
"description": "This is the second label",
|
||||||
"icon": "mdi:two",
|
"icon": "mdi:two",
|
||||||
"label_id": "mock_2",
|
"label_id": "mock_2",
|
||||||
|
"modified_at": created_2.timestamp(),
|
||||||
"name": "mock 2",
|
"name": "mock 2",
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,8 +76,11 @@ async def test_list_labels(
|
|||||||
async def test_create_label(
|
async def test_create_label(
|
||||||
client: MockHAClientWebSocket,
|
client: MockHAClientWebSocket,
|
||||||
label_registry: lr.LabelRegistry,
|
label_registry: lr.LabelRegistry,
|
||||||
|
freezer: FrozenDateTimeFactory,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test create entry."""
|
"""Test create entry."""
|
||||||
|
created_1 = datetime.fromisoformat("2024-07-16T13:30:00.900075+00:00")
|
||||||
|
freezer.move_to(created_1)
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
{
|
{
|
||||||
"name": "MOCK",
|
"name": "MOCK",
|
||||||
@ -71,12 +93,16 @@ async def test_create_label(
|
|||||||
assert len(label_registry.labels) == 1
|
assert len(label_registry.labels) == 1
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"color": None,
|
"color": None,
|
||||||
|
"created_at": created_1.timestamp(),
|
||||||
"description": None,
|
"description": None,
|
||||||
"icon": None,
|
"icon": None,
|
||||||
"label_id": "mock",
|
"label_id": "mock",
|
||||||
"name": "MOCK",
|
"name": "MOCK",
|
||||||
|
"modified_at": created_1.timestamp(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
created_2 = datetime.fromisoformat("2024-07-17T13:30:00.900075+00:00")
|
||||||
|
freezer.move_to(created_2)
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
@ -93,12 +119,16 @@ async def test_create_label(
|
|||||||
assert len(label_registry.labels) == 2
|
assert len(label_registry.labels) == 2
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"color": "#00FF00",
|
"color": "#00FF00",
|
||||||
|
"created_at": created_2.timestamp(),
|
||||||
"description": "This is the second label",
|
"description": "This is the second label",
|
||||||
"icon": "mdi:two",
|
"icon": "mdi:two",
|
||||||
"label_id": "mockery",
|
"label_id": "mockery",
|
||||||
|
"modified_at": created_2.timestamp(),
|
||||||
"name": "MOCKERY",
|
"name": "MOCKERY",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
created_3 = datetime.fromisoformat("2024-07-18T13:30:00.900075+00:00")
|
||||||
|
freezer.move_to(created_3)
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
{
|
{
|
||||||
"name": "MAGIC",
|
"name": "MAGIC",
|
||||||
@ -114,9 +144,11 @@ async def test_create_label(
|
|||||||
assert len(label_registry.labels) == 3
|
assert len(label_registry.labels) == 3
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"color": "indigo",
|
"color": "indigo",
|
||||||
|
"created_at": created_3.timestamp(),
|
||||||
"description": "This is the third label",
|
"description": "This is the third label",
|
||||||
"icon": "mdi:three",
|
"icon": "mdi:three",
|
||||||
"label_id": "magic",
|
"label_id": "magic",
|
||||||
|
"modified_at": created_3.timestamp(),
|
||||||
"name": "MAGIC",
|
"name": "MAGIC",
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,11 +214,17 @@ async def test_delete_non_existing_label(
|
|||||||
async def test_update_label(
|
async def test_update_label(
|
||||||
client: MockHAClientWebSocket,
|
client: MockHAClientWebSocket,
|
||||||
label_registry: lr.LabelRegistry,
|
label_registry: lr.LabelRegistry,
|
||||||
|
freezer: FrozenDateTimeFactory,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test update entry."""
|
"""Test update entry."""
|
||||||
|
created_at = datetime.fromisoformat("2024-07-16T13:30:00.900075+00:00")
|
||||||
|
freezer.move_to(created_at)
|
||||||
label = label_registry.async_create("mock")
|
label = label_registry.async_create("mock")
|
||||||
assert len(label_registry.labels) == 1
|
assert len(label_registry.labels) == 1
|
||||||
|
|
||||||
|
modified_at = datetime.fromisoformat("2024-07-16T13:45:00.900075+00:00")
|
||||||
|
freezer.move_to(modified_at)
|
||||||
|
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
{
|
{
|
||||||
"label_id": label.label_id,
|
"label_id": label.label_id,
|
||||||
@ -203,12 +241,17 @@ async def test_update_label(
|
|||||||
assert len(label_registry.labels) == 1
|
assert len(label_registry.labels) == 1
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"color": "#00FF00",
|
"color": "#00FF00",
|
||||||
|
"created_at": created_at.timestamp(),
|
||||||
"description": "This is a label description",
|
"description": "This is a label description",
|
||||||
"icon": "mdi:test",
|
"icon": "mdi:test",
|
||||||
"label_id": "mock",
|
"label_id": "mock",
|
||||||
|
"modified_at": modified_at.timestamp(),
|
||||||
"name": "UPDATED",
|
"name": "UPDATED",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
modified_at = datetime.fromisoformat("2024-07-16T13:50:00.900075+00:00")
|
||||||
|
freezer.move_to(modified_at)
|
||||||
|
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
{
|
{
|
||||||
"label_id": label.label_id,
|
"label_id": label.label_id,
|
||||||
@ -225,12 +268,17 @@ async def test_update_label(
|
|||||||
assert len(label_registry.labels) == 1
|
assert len(label_registry.labels) == 1
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"color": None,
|
"color": None,
|
||||||
|
"created_at": created_at.timestamp(),
|
||||||
"description": None,
|
"description": None,
|
||||||
"icon": None,
|
"icon": None,
|
||||||
"label_id": "mock",
|
"label_id": "mock",
|
||||||
|
"modified_at": modified_at.timestamp(),
|
||||||
"name": "UPDATED AGAIN",
|
"name": "UPDATED AGAIN",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
modified_at = datetime.fromisoformat("2024-07-16T13:55:00.900075+00:00")
|
||||||
|
freezer.move_to(modified_at)
|
||||||
|
|
||||||
await client.send_json_auto_id(
|
await client.send_json_auto_id(
|
||||||
{
|
{
|
||||||
"label_id": label.label_id,
|
"label_id": label.label_id,
|
||||||
@ -247,9 +295,11 @@ async def test_update_label(
|
|||||||
assert len(label_registry.labels) == 1
|
assert len(label_registry.labels) == 1
|
||||||
assert msg["result"] == {
|
assert msg["result"] == {
|
||||||
"color": "primary",
|
"color": "primary",
|
||||||
|
"created_at": created_at.timestamp(),
|
||||||
"description": None,
|
"description": None,
|
||||||
"icon": None,
|
"icon": None,
|
||||||
"label_id": "mock",
|
"label_id": "mock",
|
||||||
|
"modified_at": modified_at.timestamp(),
|
||||||
"name": "UPDATED YET AGAIN",
|
"name": "UPDATED YET AGAIN",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user