2017-06-16 2 views
0

Ich schreibe einen Komponententest für eine Datei-Upload-Funktion in Flask.Getting 400 auf Flask Unit Test

Die App funktioniert gut lokal, aber der Unit-Test wirft eine 400. Danke!

Hier ist meine 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) 

Hier ist mein Test:

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

Können Sie die Rückverfolgung des Fehlers einschließen? –

+0

@LuisOrduz Wenn ich traceback ich bekomme die folgende Ausgabe: 'NoneType: Keine' – greenpenguin

Antwort

0

ändern upload_var-photo im Data Dictionary, wie das ist, was Ihre Handler-Funktion die Datei aufgerufen werden erwartet.

+0

Dank @Luis Orduz, das hat gut funktioniert. Ich wusste, dass es so etwas war! – greenpenguin

+0

Dann könnten Sie die Antwort akzeptieren? –

+0

erledigt. Entschuldigung, neu bei SO. – greenpenguin