Exemple #1
0
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")
Exemple #2
0
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}")