mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/jxxghp/MoviePilot.git
synced 2026-09-20 08:03:34 +08:00
feat(subscribe): add modified event payload contract (#6012)
This commit is contained in:
50
tests/test_subscribe_modified_event.py
Normal file
50
tests/test_subscribe_modified_event.py
Normal file
@@ -0,0 +1,50 @@
|
||||
from app.schemas.event import SubscribeModifiedEventData
|
||||
|
||||
|
||||
def test_subscribe_modified_event_data_computes_sorted_fields():
|
||||
data = SubscribeModifiedEventData(
|
||||
subscribe_id=7,
|
||||
old_subscribe_info={"state": "R", "lack_episode": 3, "name": "A"},
|
||||
subscribe_info={"state": "S", "lack_episode": 3, "name": "B"},
|
||||
scene="status",
|
||||
)
|
||||
|
||||
assert data.fields == ["name", "state"]
|
||||
assert data.to_dict() == {
|
||||
"subscribe_id": 7,
|
||||
"old_subscribe_info": {"state": "R", "lack_episode": 3, "name": "A"},
|
||||
"subscribe_info": {"state": "S", "lack_episode": 3, "name": "B"},
|
||||
"scene": "status",
|
||||
"fields": ["name", "state"],
|
||||
}
|
||||
|
||||
|
||||
def test_subscribe_modified_event_data_diffs_missing_keys_as_none():
|
||||
data = SubscribeModifiedEventData(
|
||||
subscribe_id=8,
|
||||
old_subscribe_info={"state": "R", "episode_priority": {"1": 80}},
|
||||
subscribe_info={"state": "R"},
|
||||
scene="reset",
|
||||
)
|
||||
|
||||
assert data.fields == ["episode_priority"]
|
||||
assert set(data.to_dict()) == {
|
||||
"subscribe_id",
|
||||
"old_subscribe_info",
|
||||
"subscribe_info",
|
||||
"scene",
|
||||
"fields",
|
||||
}
|
||||
|
||||
|
||||
def test_subscribe_modified_event_data_ignores_caller_supplied_fields():
|
||||
data = SubscribeModifiedEventData(
|
||||
subscribe_id=9,
|
||||
old_subscribe_info={"state": "R"},
|
||||
subscribe_info={"state": "S"},
|
||||
scene="update",
|
||||
fields=["fake"],
|
||||
)
|
||||
|
||||
assert data.fields == ["state"]
|
||||
assert data.to_dict()["fields"] == ["state"]
|
||||
Reference in New Issue
Block a user