0
我正在Flask應用程序上執行測試,我期待用jsonify
構建json響應。我使用ast
庫來解碼響應。不過,我收到以下錯誤:Flask jsonify布爾響應在單元測試中無法解碼
Traceback (most recent call last):
File "test_index.py", line 177, in test_create_venue
data = ast.literal_eval(rv.data)
File "/Users/manuelgodoy/anaconda/lib/python2.7/ast.py", line 80, in literal_eval
return _convert(node_or_string)
File "/Users/manuelgodoy/anaconda/lib/python2.7/ast.py", line 63, in _convert
in zip(node.keys, node.values))
File "/Users/manuelgodoy/anaconda/lib/python2.7/ast.py", line 62, in <genexpr>
return dict((_convert(k), _convert(v)) for k, v
File "/Users/manuelgodoy/anaconda/lib/python2.7/ast.py", line 79, in _convert
raise ValueError('malformed string')
ValueError: malformed string
我的測試功能如下:
def test_create_venue(self):
rv = self.app.get("/data_send")
data = ast.literal_eval(rv.data)
self.assertTrue(data["Sent"])
和應用程序的功能是:
@app.route('/data_send', methods = ['GET'])
def data_send():
usr = User.get_by_id(g.user.key.id())
usr.get_last_order().set_as_posted()
rest = usr.restaurant
for c in rest.channel_set():
try:
channel.send_message(c.cid, 'ping')
except:
return jsonify(Sent = False)
return jsonify(Sent = True)
Jsonify正在發送以下響應:
'{\n "Sent": true\n}'
但ast
不識別小寫字母true
作爲布爾值。因此,它提出了一個ValueError
。
任何想法如何將jsonify
的響應轉換爲維護布爾值的Dict
,以便我可以執行布爾斷言?