2016-11-19 1 views
2
from flask import jsonify 

@app.route('/urlinfo/1/<path:URL>', methods=['GET']) 
def search(URL): 
    if something: 
    a=dict(message="everything is good" 
    resp=jsonify(a) 
    return resp 
    else: 
    a=dict(error="problem") 
    return jsonify(a) 

をスローIはパイソン:ユニットテストではなく、実際の出力の<Responseが[200 OK]をストリーミング>

curl http://127.0.0.1:5000/urlinfo/1/'https://www.youtube.com/' 

を使用してカールしてい、それはJSON形式で所望の出力を返しています。

私はそれ

代わりに( "メッセージ": "すべてが良い")の文字列を返すので、ユニットテストが失敗した
import unittest 

def test_search_non_malicious_url(self): 
    #pass safe URL and test web service does not block it 
    new_URL= "183.434.44.44:90" 
    expected= { 
        "message": "Everything is good" 
      }  
    self.assertEqual("a",search(new_URL)) 

のためのユニットテストを書いて、search(new_URL)戻っ応答が[200 OK]を

をストリーミング出力を辞書として返す方法{"message": "Everything is good"}

+0

あなたはjsonify返す 'インデント解除ができ(a)は'それ以外の場合、両方のため、それにつながります –

答えて

3

私は値を取得するために.dataを追加する必要がありました:

self.assertEqual("a",search(new_URL).data) 
関連する問題