Keep failed HLS preflight on native path
This commit is contained in:
+15
@@ -4546,6 +4546,21 @@ seg-3.ts
|
||||
)
|
||||
)
|
||||
|
||||
def test_hls_preflight_failure_does_not_fall_through_to_direct_ffmpeg(self):
|
||||
with tempfile.TemporaryDirectory() as temp_root:
|
||||
target = Path(temp_root) / "Episode.mp4"
|
||||
stream = {"url": "https://cdn.example/master.m3u8", "isM3U8": True, "headers": {}}
|
||||
with mock.patch.object(provider_downloader, "resolve_hls_input_url", return_value=stream["url"]), mock.patch.object(
|
||||
provider_downloader, "hls_media_playlist", side_effect=RuntimeError("playlist blocked")
|
||||
), mock.patch.object(provider_downloader, "download_hls_segments", return_value=1) as download_segments, mock.patch.object(
|
||||
provider_downloader, "run_ffmpeg"
|
||||
) as run_ffmpeg:
|
||||
code = provider_downloader.download_episode(stream, target, episode_number=1)
|
||||
|
||||
self.assertEqual(code, 1)
|
||||
download_segments.assert_called_once()
|
||||
run_ffmpeg.assert_not_called()
|
||||
|
||||
def test_fetch_bytes_with_retries_recovers_from_segment_rate_limit(self):
|
||||
error = urllib.error.HTTPError(
|
||||
"https://cdn.example/video/raw-segment",
|
||||
|
||||
Reference in New Issue
Block a user