mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-06-28 06:41:43 +00:00
refactor: allow event to receive keyword arguments
This change also replaces the dataclass implementation of the class to custom one
This commit is contained in:
@ -8,7 +8,7 @@ def test_event_insert_get(database: SQLite, package_ahriman: Package) -> None:
|
||||
"""
|
||||
must insert and get event
|
||||
"""
|
||||
event = Event(EventType.PackageUpdated, package_ahriman.base, "Updated", {"key": "value"})
|
||||
event = Event(EventType.PackageUpdated, package_ahriman.base, "Updated", key="value")
|
||||
database.event_insert(event)
|
||||
assert database.event_get() == [event]
|
||||
|
||||
|
@ -1,17 +1,57 @@
|
||||
from ahriman.models.event import Event, EventType
|
||||
|
||||
|
||||
def test_post_init() -> None:
|
||||
def test_init() -> None:
|
||||
"""
|
||||
must replace event type for known types
|
||||
"""
|
||||
assert Event("random", "")
|
||||
assert isinstance(Event(str(EventType.PackageUpdated), "").event, EventType)
|
||||
|
||||
assert Event("", "", key="value").data == {"key": "value"}
|
||||
|
||||
assert Event("", "").created > 0
|
||||
|
||||
|
||||
def test_from_json_view() -> None:
|
||||
"""
|
||||
must construct and serialize event to json
|
||||
"""
|
||||
event = Event("event", "object", "message", {"key": "value"})
|
||||
event = Event("event", "object", "message", key="value")
|
||||
assert Event.from_json(event.view()) == event
|
||||
|
||||
|
||||
def test_get() -> None:
|
||||
"""
|
||||
must return property correctly
|
||||
"""
|
||||
assert Event("event", "object", "message", key="value").get("key") == "value"
|
||||
assert Event("event", "object").get("key") is None
|
||||
|
||||
|
||||
def test_view_empty() -> None:
|
||||
"""
|
||||
must skip empty fields during (de-)serialization
|
||||
"""
|
||||
event = Event("event", "object")
|
||||
assert Event.from_json(event.view()) == event
|
||||
assert "message" not in event.view()
|
||||
assert "data" not in event.view()
|
||||
|
||||
|
||||
def test_eq() -> None:
|
||||
"""
|
||||
must compare two events
|
||||
"""
|
||||
event1 = Event("1", "1", "1", 1, key="value")
|
||||
assert event1 == event1
|
||||
|
||||
event2 = Event("2", "2", "2", 2, key="value")
|
||||
assert event1 != event2
|
||||
|
||||
|
||||
def test_eq_other() -> None:
|
||||
"""
|
||||
must return False in case if object is not an instance of event
|
||||
"""
|
||||
assert Event("1", "1") != 42
|
||||
|
@ -27,7 +27,7 @@ async def test_get(client: TestClient) -> None:
|
||||
"""
|
||||
must return all events
|
||||
"""
|
||||
event1 = Event("event1", "object1", "message", {"key": "value"})
|
||||
event1 = Event("event1", "object1", "message", key="value")
|
||||
event2 = Event("event2", "object2")
|
||||
await client.post("/api/v1/events", json=event1.view())
|
||||
await client.post("/api/v1/events", json=event2.view())
|
||||
@ -46,7 +46,7 @@ async def test_get_with_pagination(client: TestClient) -> None:
|
||||
"""
|
||||
must get events with pagination
|
||||
"""
|
||||
event1 = Event("event1", "object1", "message", {"key": "value"})
|
||||
event1 = Event("event1", "object1", "message", key="value")
|
||||
event2 = Event("event2", "object2")
|
||||
await client.post("/api/v1/events", json=event1.view())
|
||||
await client.post("/api/v1/events", json=event2.view())
|
||||
@ -83,7 +83,7 @@ async def test_post(client: TestClient) -> None:
|
||||
"""
|
||||
must create event
|
||||
"""
|
||||
event = Event("event1", "object1", "message", {"key": "value"})
|
||||
event = Event("event1", "object1", "message", key="value")
|
||||
request_schema = pytest.helpers.schema_request(EventsView.post)
|
||||
|
||||
payload = event.view()
|
||||
|
Reference in New Issue
Block a user