gpt4 book ai didi

python - 在 Python 中模拟 Google App Engine 文件上传

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:11 33 4
gpt4 key购买 nike

我有一个使用 Python 编写的 Google App Engine 应用程序,允许用户上传文件。提交文件后,我使用

获取文件
self.request.get('uploaded_file')

我使用

获取文件名
self.request.POST['uploaded_file'].filename 

我正在尝试通过手动创建一个 webapp 请求来为它编写一个单元测试,并将文件设置为我想要的方式。但是,我不知道如何初始化它以便我可以获得上传的文件及其文件名。

有什么想法吗?

最佳答案

如果您正在测试您的处理程序,您可能已经创建了一个 Webob 请求对象并将其传递给您的处理程序,如下所示:

request = webapp.Request({
"wsgi.input": StringIO.StringIO(),
"METHOD": "POST",
})
response = webapp.Response()
handler = MyHandler()
handler.initialize(request, response)
handler.post()

上传的文件是 cgi.FieldStorage 对象,但是 FieldStorage 并不是特别容易测试。相反,最简单的方法可能是使用模拟框架(例如 mox)来创建模拟,或者只是创建一个简单的伪造:

class FakeFieldStorage(object):
def __init__(self, filename, value):
self.filename = filename
self.value = value

然后创建一个并将其添加到请求对象,然后再将其传递给处理程序:

uploaded_file = FakeFieldStorage("test.txt", "foo")
request.POST['file'] = uploaded_file

关于python - 在 Python 中模拟 Google App Engine 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990986/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com