Harden wanted-search language behavior for normalization work#3384
Harden wanted-search language behavior for normalization work#3384mjc wants to merge 14 commits into
Conversation
Align requests floor with vendored runtime
Add shared wanted-search fixture layer Cover wanted-search fixtures with focused tests
(cherry picked from commit faa01ff) test: add mass-download fixture support test: complete mass-download fixture support test: add shared wanted database binder test: simplify wanted kind inference test: register wanted fixtures at top level test: drop unused transactional tmp fixture test: bind profile lookup to wanted test database test: bind profile list lookup to wanted fixtures
|
Note on the diff shape: this PR is intentionally opened against |
73e1566 to
005c8d2
Compare
005c8d2 to
26143d3
Compare
26143d3 to
6fe3af1
Compare
6fe3af1 to
4b3dd62
Compare
|
I rebased this branch on the updated shared wanted-search fixture layer from #3383 and kept the wanted/adaptive behavior coverage here. This branch owns the follow-up behavior tests for:
I also adjusted these tests to use local worker helpers instead of reintroducing the shared |
4b3dd62 to
f9333a4
Compare
Summary
This PR hardens wanted-search and adaptive-search language handling before the wanted-search storage model changes in the performance work.
It keeps the current serialized wanted-state model in place, but makes the existing movie and episode wanted-search paths stricter and more predictable around malformed language tokens, forced/HI flags, audio-language fallbacks, and failed-attempt updates.
What changed
Nonethrough wanted-search payload construction.Why this is separate
The normalized wanted-state PR relies on these language and retry semantics being pinned down first. Keeping this as a hardening PR lets the later storage/query changes focus on performance and schema shape instead of mixing in behavior fixes for malformed wanted-language data.
Tests
The added and updated tests cover malformed wanted-language tokens, forced/HI normalization, duplicate and mixed-case flags, multi-language retry updates, audio-language fallback behavior, missing scene names, scheduled wanted-search filtering, provider wrapper behavior, and adaptive-search property cases. The tests use the shared transactional fixtures and mock only provider/search side effects.