Py学习  »  Python

用python测试flash消息的内容

beloas • 5 年前 • 1533 次点击  

我想测试flash消息是否包含某些文本。所以我有句台词:

response = tester.post('login',
        data=dict(
        username='test', password='lol'), follow_redirects=True)
assert 'Welcome back!' in response.data

但是,此操作失败,并显示错误消息:

 assert 'Welcome back!' in response.data
 TypeError: a bytes-like object is required, not 'str'

有人知道我做错了什么吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47728
 
1533 次点击  
文章 [ 1 ]  |  最新文章 5 年前
R4444
Reply   •   1 楼
R4444    6 年前

正如@michaelbutscher所建议的,您可以:

assert b'Welcome back!' in response.data

这是因为 response.data 有一个 <class 'bytes'> 键入。所以,你需要匹配你的“欢迎回来!”字符串到字节。

在您的情况下,可以这样修复代码:

response = tester.post('login',
        data=dict(
        username='test', password='lol'), follow_redirects=True)
try:
    assert 'Welcome back!' in response.data
except AssertionError:
    print("Assertion failed!")

所以,对于响应数据= b"xxxxWelcome back!xxxx" 然后匹配,否则不匹配。

确保:字符串与输入(或要断言的字符串)完全匹配,并确保区分大小写在这里也很重要。