Beispiel #1
0
async def test_gif_submission_from_cache(mock_client):
    submission = SubmissionBuilder(file_ext="gif",
                                   file_size=47453).build_full_submission()
    chat = MockChat(-9327622)
    message_id = 2873292
    convert = MockMethod("output.mp4")
    submission._convert_gif = convert.async_call
    mock_open = mock.mock_open(read_data=b"data")
    mock_exists = MockMethod(True)

    with mock.patch("fa_search_bot.sites.fa_submission.open", mock_open):
        with mock.patch("os.path.exists", mock_exists.call):
            await submission.send_message(mock_client,
                                          chat,
                                          reply_to=message_id)

    assert not convert.called
    mock_client.send_message.assert_called_once()
    assert mock_client.send_message.call_args[1]['entity'] == chat
    assert mock_exists.called
    assert mock_exists.args[
        0] == f"{submission.GIF_CACHE_DIR}/{submission.submission_id}.mp4"
    assert mock_open.call_args[0][
        0] == f"{submission.GIF_CACHE_DIR}/{submission.submission_id}.mp4"
    assert mock_open.call_args[0][1] == "rb"
    assert mock_client.send_message.call_args[1][
        'file'] == mock_open.return_value
    assert mock_client.send_message.call_args[1]['message'] == submission.link
    assert mock_client.send_message.call_args[1]['reply_to'] == message_id
Beispiel #2
0
async def test_convert_gif_failure(mock_client):
    submission = SubmissionBuilder(file_ext="gif",
                                   file_size=47453).build_full_submission()
    chat = MockChat(-9327622)
    message_id = 2873292
    submission._convert_gif = lambda *args: (_ for _ in ()).throw(Exception)
    mock_bytes = b"hello world"

    with mock.patch.object(fa_submission,
                           "_convert_gif_to_png",
                           return_value=mock_bytes) as mock_convert:
        await submission.send_message(mock_client, chat, reply_to=message_id)

    mock_client.send_message.assert_called_once()
    assert mock_client.send_message.call_args[1]['entity'] == chat
    assert mock_client.send_message.call_args[1]['file'] == mock_bytes
    assert mock_client.send_message.call_args[1]['message'] == submission.link
    assert mock_client.send_message.call_args[1]['reply_to'] == message_id
    mock_convert.assert_called_once()
    assert mock_convert.call_args[0][0] == submission.download_url