Макетная функция, используемая в обработчике запросов flask - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь смоделировать функцию upload_image, вызываемую в обработчике запросов flask, из моего тестового файла.

Однако в моей текущей реализации исходная функция по-прежнему вызывается в обработчике запросов и не возвращает ложное возвращаемое значение. Как я могу издеваться над этой функцией из моего test.py файла?

Код:

tests/test.py

import os
from unittest.mock import patch

def test_image_upload(test_client):
    with patch("app.utils.upload_image", 'test_path'):
        test_file_path = os.path.dirname(os.path.abspath(__file__)) + '/test_file.png'
        f = open(test_file_path, 'rb')

        data = {
            'num-files': 1,
            'test_file.png': f
        }

        response = test_client.post('/file/upload', data=data)
        assert response.status_code == 200

app/files/handler.py

from utils import upload_image
@app.route('/file/upload', methods=['POST'])
def upload_file():
    # should be returning 'test_path', but is actually uploading the file and returning a URL
    file_url = upload_image(image)
    return jsonify({'file_url': file_url})
...