fix(plex): the watch reconcile clears only what it walked, and doubts a mirrored 0
A library left out of the allowlist is never scanned, so its watch states were cleared on every reconcile; clearing is now limited to the sections walked. A section we mirror items from that says it holds 0 is not believed complete. The page size is no longer read as the section total when totalSize is missing (measured: the server always sends totalSize on a paged request, 0 for an empty one).
This commit is contained in:
@@ -79,11 +79,16 @@ def test_a_section_page_asks_for_guids_and_reports_the_server_total(plex):
|
||||
assert params["includeGuids"] == "1" and params["type"] == "1"
|
||||
assert params["X-Plex-Container-Start"] == "200" and params["X-Plex-Container-Size"] == "50"
|
||||
|
||||
plex.routes["/library/sections/7/all"] = {"Metadata": [], "size": 0}
|
||||
# Measured on the real server (E32 review): a paged request carries `totalSize` even when the
|
||||
# page is empty, past the end, or the section holds nothing — `size: 0, totalSize: 0`.
|
||||
plex.routes["/library/sections/7/all"] = {"Metadata": [], "size": 0, "totalSize": 0}
|
||||
assert plex.section_items("7", 2) == ([], 0)
|
||||
# No total at all is not "0": the caller must not read it as a complete, empty section.
|
||||
plex.routes["/library/sections/7/all"] = {"Metadata": []}
|
||||
assert plex.section_items("7", 2) == ([], None)
|
||||
# …and `size` is THIS page's count, never the section's: one full page is not the whole section.
|
||||
plex.routes["/library/sections/7/all"] = {"Metadata": [{"ratingKey": "1"}], "size": 1}
|
||||
assert plex.section_items("7", 2) == ([{"ratingKey": "1"}], None)
|
||||
|
||||
|
||||
def test_related_flattens_the_hubs_and_degrades_to_empty(plex):
|
||||
|
||||
Reference in New Issue
Block a user