![](/img/trans.png)
[英]How to send QuerySelectField form data to a Flask view in a unittest?
[英]How to send image with form data in test case with unittest in flask application?
我是 Python 新手,我正在制作 Flask 應用程序。 所以,我想使用 unittest 為我的應用程序編寫測試用例,我這樣做:
def test_bucket_name(self):
self.test_app = app.test_client()
response = self.test_app.post('/add_item', data={'name':'test_item','user_id':'1','username':'admin'})
self.assertEquals(response.status, "200 OK")
這一切都很好。 但是我在一個 URL 中使用 POST 發布了一些數據和圖像。 所以,我的問題是:“我如何發送帶有這些數據的圖像? ”
將圖像讀入StringIO
緩沖區。 將圖像作為表單數據中的另一項傳遞,其中值是 (image, filename) 的元組。
def test_bucket_name(self):
self.test_app = app.test_client()
with open('/home/linux/Pictures/natural-scenery.jpg', 'rb') as img1:
imgStringIO1 = StringIO(img1.read())
response = self.test_app.post('/add_item',content_type='multipart/form-data',
data={'name':'test_item',
'user_id':'1',
'username':'admin',
'image': (imgStringIO1, 'img1.jpg')})
self.assertEquals(response.status, "200 OK")
上面的答案是正確的,除了在我的情況下,我必須像下面這樣使用 BytesIO:
def create_business(self, name):
with open('C:/Users/.../cart.jpg', 'rb') as img1:
imgStringIO1 = BytesIO(img1.read())
return self.app.post(
'/central-dashboard',
content_type='multipart/form-data',
data=dict(name=name, logo=(imgStringIO1, 'cart.jpg')),
follow_redirects=True
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.