我有一个小型烧瓶应用程序,它需要上传一些图像并将它们转换为多页 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)
我想读取响应中发送的文件并将其与另一个文件进行比较。如何从响应对象获取文件?
我想也许这里的困惑是response
is a Response http://flask.pocoo.org/docs/1.0/api/#flask.Response对象而不是 post 请求下载的数据。这是因为 HTTP 响应具有其他通常有用的属性,例如返回的 http 状态代码、响应的 mime 类型等...用于访问这些属性的属性名称列在上面的链接中。
响应对象有一个名为“data”的属性,因此response.data
将包含从服务器下载的数据。我链接的文档表明data
很快就会被弃用,并且get_data()
应该使用方法来代替,但是测试教程 http://flask.pocoo.org/docs/1.0/testing/#the-first-test仍然使用数据。在您自己的系统上进行测试,看看什么有效。假设您想测试数据的往返,
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()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)