gpt4 book ai didi

python - 如何测试 send_file flask

转载 作者:太空狗 更新时间:2023-10-29 18:27:53 28 4
gpt4 key购买 nike

我有一个小的 flask 应用程序,它可以上传一些图像并将它们转换成多页 tiff。没什么特别的。

但是如何测试多个文件的上传和文件下载呢?

我的测试客户端:

class RestTestCase(unittest.TestCase):
def setUp(self):
self.dir = os.path.dirname(__file__)
rest = imp.load_source('rest', self.dir + '/../rest.py')
rest.app.config['TESTING'] = True
self.app = rest.app.test_client()

def runTest(self):
with open(self.dir + '/img/img1.jpg', 'rb') as img1:
img1StringIO = StringIO(img1.read())

response = self.app.post('/convert',
content_type='multipart/form-data',
data={'photo': (img1StringIO, 'img1.jpg')},
follow_redirects=True)
assert True

if __name__ == "__main__":
unittest.main()

应用程序发回文件

return send_file(result, mimetype='image/tiff', \
as_attachment=True)

我想读取响应中发送的文件并将其与另一个文件进行比较。如何从响应对象中获取文件?

最佳答案

我认为这里的混淆可能是 responseResponse对象而不是发布请求下载的数据。这是因为 HTTP 响应具有其他通常有用的属性,例如返回的 http 状态代码、响应的 mime 类型等...访问这些的属性名称在上面的链接中列出。

响应对象有一个名为“数据”的属性,因此 response.data 将包含从服务器下载的数据。我链接的文档表明 data 即将被弃用,应该使用 get_data() 方法,但是 testing tutorial还是用数据。在您自己的系统上进行测试,看看哪些有效。假设您要测试数据的往返,

def runTest(self):
with open(self.dir + '/img/img1.jpg', 'rb') as img1:
img1StringIO = StringIO(img1.read())

response = self.app.post('/convert',
content_type='multipart/form-data',
data={'photo': (img1StringIO, 'img1.jpg')},
follow_redirects=True)
img1StringIO.seek(0)
assert response.data == imgStringIO.read()

关于python - 如何测试 send_file flask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26363613/

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