2017-07-03 12 views
1

私は、レンダリングテンプレートを返す関数のFlaskユニットテストを書いています。私はいくつかの方法を試しましたが、うまくいかないようです。ここ は、関数である:すべてのあなたの助けのためのFlask Unittest for Postメソッド

# 1st way  
rv = self.app.post('/') 
self.assertTrue('Choose an Icon to Insert' in rv.get_data(as_text=True)) 
# Error 
self.assertTrue('Choose an Icon to Insert' in rv.get_data(as_text=True)) 
AssertionError: False is not true 


# 2nd way  
rv = self.app.post('/chooser.html') 
assert '<h1>Choose an Icon to Insert</h1>' in rv.data 
# Error 
assert 'Choose an Icon to Insert' in rv.data 
AssertionError 

chooser.html

<body> 
    <h1>Choose an Icon to Insert</h1> 
</body> 

感謝を:私がしようとしている

@app.route('/', methods=['POST']) 
@lti(request='initial', error=error, app=app) 
def chooser(lti=lti): 
    return_url = request.form.get('launch_presentation_return_url', '#') 
    return render_template(
     'chooser.html' 
    ) 

いくつかの方法。

+0

エラーなどありますか?人々があなたを助けるためにできるだけ多くの詳細を含めるように質問を編集してください。 – user3788685

+0

私に思い出させるためにありがとう。私は質問を更新し、助けてくれることを願っています。 –

答えて

0

ここでは理解しやすい例を示します。私たちのアプリケーション - app.py

import httplib 
import json 

from flask import Flask, request, Response 

app = Flask(__name__) 


@app.route('/', methods=['POST']) 
def main(): 
    url = request.form.get('return_url') 
    # just example. will return value of sent return_url 
    return Response(
     response=json.dumps({'return_url': url}), 
     status=httplib.OK, 
     mimetype='application/json' 
    ) 

当社のテスト - test_api.py

import json 
import unittest 

from app import app 
# set our application to testing mode 
app.testing = True 


class TestApi(unittest.TestCase): 

    def test_main(self): 
     with app.test_client() as client: 
      # send data as POST form to endpoint 
      sent = {'return_url': 'my_test_url'} 
      result = client.post(
       '/', 
       data=sent 
      ) 
      # check result from server with expected data 
      self.assertEqual(
       result.data, 
       json.dumps(sent) 
      ) 

実行する方法:

python -m unittest discover -p path_to_test_api.py 

結果:

---------------------------------------------------------------------- 
Ran 1 test in 0.009s 

OK 

はそれがお役に立てば幸いです。

+0

ありがとう!できます。 –

+0

@ TuanPham幸運;) –

関連する問題