比较响应数据的单元测试引发TypeError

时间:2015-10-09 06:59:36

标签: python flask

我试图为示例烧瓶应用程序编写一些单元测试。我想检查响应中是否有特定的字符串。我一直在TypeError: 'str' does not support the buffer interface。为什么我会收到此错误,我该如何解决?

======================================================================
ERROR: test_empty_db (__main__.FlaskrTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_flaskr.py", line 31, in test_empty_db
    assert 'No entries here so far' in rv.data
TypeError: 'str' does not support the buffer interface

1 个答案:

答案 0 :(得分:5)

来自测试客户端的响应数据是字节,而不是unicode,数据。在Python 3中,这意味着您需要解码数据以将其与字符串进行比较,或者将其与字节串进行比较。

# compare bytes
assert b'No entries so far' in rv.data

# or decode to string
assert 'No entries so far' in rv.data.decode('utf8')