2016-11-19 14 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) 

我使用的Python:單元測試拋出<響應流[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

您可以使用unindent'return jsonify(a)',因爲if和else都會導致 –

回答

3

想通了。我不得不添加.data以獲得值:

self.assertEqual("a",search(new_URL).data) 
相關問題