async def test_convert_gif_two_pass(): submission = SubmissionBuilder(file_ext="gif", file_size=47453).build_full_submission() mock_run = MockMultiMethod(["Test docker", "27.5", "ffmpeg1", "ffmpeg2"]) mock_filesize = MockMethod(submission.SIZE_LIMIT_GIF + 10) submission._run_docker = mock_run.async_call with mock.patch("os.path.getsize", mock_filesize.call): output_path = await submission._convert_gif(submission.download_url) assert output_path is not None assert output_path.endswith(".mp4") assert mock_run.calls == 4 # Initial ffmpeg call assert mock_run.args[0][1].startswith(f"-i {submission.download_url} ") # ffprobe call assert mock_run.args[1][1].startswith("-show_entries format=duration ") assert mock_run.kwargs[1]["entrypoint"] == "ffprobe" # First ffmpeg two pass call assert mock_run.args[2][1].startswith(f"-i {submission.download_url} ") assert " -pass 1 -f mp4 " in mock_run.args[2][1] assert mock_run.args[2][1].endswith(" /dev/null -y") # Second ffmpeg two pass call assert mock_run.args[3][1].startswith(f"-i {submission.download_url} ") assert " -pass 2 " in mock_run.args[3][1] assert mock_run.args[3][1].endswith(f" {output_path} -y")
async def test_convert_gif(): submission = SubmissionBuilder(file_ext="gif", file_size=47453).build_full_submission() mock_run = MockMethod("Test docker") mock_filesize = MockMethod(submission.SIZE_LIMIT_GIF - 10) submission._run_docker = mock_run.async_call with mock.patch("os.path.getsize", mock_filesize.call): output_path = await submission._convert_gif(submission.download_url) assert output_path is not None assert output_path.endswith(".mp4") assert mock_run.called assert mock_run.args[1].startswith(f"-i {submission.download_url}") assert mock_run.args[1].endswith(f" /{output_path}")