【发布时间】:2017-03-14 12:50:40
【问题描述】:
这个简单的 Falcon API 将采用 HTTP POST 和 enctype=multipart/form-data 并在 file 参数中上传文件并在控制台上打印文件的内容:
# simple_api.py
import cgi
import falcon
class SomeTestApi(object):
def on_post(self, req, resp):
upload = cgi.FieldStorage(fp=req.stream, environ=req.env)
upload = upload['file'].file.read()
print(upload)
app = falcon.API()
app.add_route('/', SomeTestApi())
也可以使用falcon-multipart 中间件来实现相同的目标。
要试用它,请运行它,例如与gunicorn (pip install gunicorn),
gunicorn simple_api.py
然后使用 cUrl(或任何选择的 REST 客户端)上传文本文件:
# sample.txt
this is some sample text
curl -F "file=@sample.txt" localhost:8000
我现在想通过模拟文件上传来使用 Falcon 的 testing helpers 测试这个 API。但是,我还不明白如何做到这一点(如果可能的话?)。 simulate_request method 有一个 file_wrapper 参数,它可能很有用,但从文档中我不明白应该如何填充它。
有什么建议吗?
【问题讨论】:
标签: python file-upload functional-testing falconframework