2017-06-16 65 views
0

我正在爲Flask中的文件上傳函數編寫單元測試。獲得400在Flask單元測試

該應用程序在本地運行良好,但單元測試會拋出400.謝謝!

這裏是我的app.py

from flask import Flask, render_template, request 
app = Flask(__name__) 
app.config["TESTING"] = True 


@app.route('/') 
def index(): 
    return render_template('index.html') 

@app.route('/uploader', methods = ['GET','POST']) 
def upload_photo(): 
    if request.method == 'POST': 
     photo = request.files['photo'] 
     resp = app.make_response(photo.read()) 
     resp.mimetype = 'image/jpeg' 
     return resp 

if __name__ == '__main__': 
    app.run(debug=True) 

這裏是我的測試:

import unittest 
import io 
from app import app 


class TestCase(unittest.TestCase): 

    def setUp(self): 
     self.client = app.test_client() 

    def test_upload_photo(self):    
     result = self.client.post('/uploader', 
    content_type='multipart/form-data', follow_redirects=True, 
    data=dict(upload_var=(io.BytesIO(b'photo'), 'photo'))) 
     print(result.data) 
     self.assertTrue(result.status_code == 200) 


if __name__ == "__main__": 
    unittest.main()` 
+0

您能否包含錯誤的追溯? –

+0

@LuisOrduz當我做回溯時,我得到以下輸出:'NoneType:None' – greenpenguin

回答

0

變化在數據字典upload_varphoto,因爲這是你的處理函數需要的文件被調用。

+0

謝謝@Luis Orduz,那很好。我知道這是這樣的! – greenpenguin

+0

然後,你能接受答案嗎? –

+0

完成。對不起,新來的SO。 – greenpenguin