测试Sanic文件上传

问题描述 投票:0回答:1

在查看docs时,我看到了一个很好的例子,说明如何测试一个sanic应用程序。

# Import the Sanic app, usually created with Sanic(__name__)
from external_server import app

def test_index_returns_200():
    request, response = app.test_client.get('/')
    assert response.status == 200

def test_index_put_not_allowed():
    request, response = app.test_client.put('/')
    assert response.status == 405

现在我正在尝试让测试框架接受上传的照片到端点。我的代码通过以下方式工作:

upload_payload = {'image':  open(os.path.join(img_dir, img_name), 'rb')}
request, response = app.test_client.post('/image', file = upload_payload)

它给出了一个错误,表明我无法传递文件。测试框架不支持这个吗?

aiohttp sanic
1个回答
1
投票

事实证明这些事情的标准是发布一个data参数。这很好用:

upload_payload = {'image':  open(os.path.join(IMG_DIR, img_name), 'rb')}
request, response = app.test_client.post('/image', data = upload_payload)
© www.soinside.com 2019 - 2024. All rights reserved.