Hier ist ein minimalistisches Beispiel, wie ich Web-API testen werde. Anscheinend bekomme ich 500 statt der erwarteten Behauptung. Was mache ich falsch?Flask - wie man POST richtig prüft?
import unittest
from flask import Flask, request
from app.forms import RegistrationForm
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def hello_world():
form = RegistrationForm(request.form)
return form.foo.data+form.bar.data
class AppTestCase(unittest.TestCase):
def setUp(self):
self.app = app.test_client()
def tearDown(self):
pass
def test_login_logout(self):
rv=self.app.post('/', data=dict(
foo='foooo',
bar='barrr'
), follow_redirects=True)
assert 'foooobarrr' in rv.data
if __name__ == '__main__':
app.run()
versuchen Sie, 'Assert' foooobarr 'in rv.data' zu entfernen. dann drucke 'rv.data' und schau, was du bekommst. ist der String 'foooobarr' wirklich in' rv.data'? als eine Seitennotiz sollte 'request.form' wahrscheinlich nicht innerhalb von 'RegistrationForm()' sein. – wgwz
Aktivieren Sie den Debug-Modus oder die Protokollierung und schauen Sie sich das Traceback an. http://stackoverflow.com/questions/32722143/flask-application-traceback-doesnt-show-up-in-server-log Bitte [bearbeiten], um eine [mcve] zu erstellen. – davidism
Ja, es tut 500 im Moment. Aber dieser Code soll nur die Idee von dem, was ich will, veranschaulichen. – Castle