代码之家  ›  专栏  ›  技术社区  ›  cantdutchthis

测试Sanic文件上载

  •  0
  • cantdutchthis  · 技术社区  · 7 年前

    当查看 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)
    

    它给出了一个错误,提示我无法传递文件。测试框架是否不支持这一点?

    1 回复  |  直到 7 年前
        1
  •  1
  •   cantdutchthis    7 年前

    事实证明,这类事情的标准是发布 data 参数沿。这很好:

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