mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2026-11-14 13:05:09 +00:00
fix(remote): stop warning about missing keys for tracks that carry no DRM
The server names the clear tracks in the licence response and the client skips them instead of warning for every requested track without keys.
This commit is contained in:
@@ -146,3 +146,25 @@ async def test_server_tells_a_remote_vault_only_when_it_served_the_pair(monkeypa
|
||||
assert local.flagged == [("SVC", KID, "v", "sqlite")]
|
||||
assert source.flagged == [("SVC", KID, "v", "sqlite")]
|
||||
assert bystander.flagged == []
|
||||
|
||||
|
||||
def test_resolve_server_keys_does_not_warn_for_clear_tracks(monkeypatch):
|
||||
"""A requested track the server lists in clear_tracks carries no DRM, so its
|
||||
missing keys are expected and draw no warning."""
|
||||
svc = remote_service()
|
||||
warnings: list = []
|
||||
svc.log = SimpleNamespace(warning=lambda msg, *a, **k: warnings.append(msg), debug=lambda *a, **k: None)
|
||||
svc._server_cdm = True
|
||||
svc.drain_server_logs = lambda: None
|
||||
svc.client = SimpleNamespace(post=lambda ep, data: {"keys": {}, "clear_tracks": ["a-1"]})
|
||||
|
||||
video_track = SimpleNamespace(id="v-1", drm=None)
|
||||
audio_track = SimpleNamespace(id="a-1", drm=None)
|
||||
|
||||
class Tracks(list):
|
||||
videos = [video_track]
|
||||
audio = [audio_track]
|
||||
|
||||
svc.resolve_server_keys(SimpleNamespace(tracks=Tracks([video_track, audio_track])))
|
||||
|
||||
assert warnings == ["Server CDM returned no content keys for track v-1"]
|
||||
|
||||
Reference in New Issue
Block a user