在发布到我的 flask 应用程序 url 的不同输入值上,它会闪烁不同的消息,例如'没有输入数据'、'输入无效'、'没有找到记录'、'找到 3 条记录'。
有人可以指导我如何编写 Nose 测试来检查是否显示了正确的闪存消息?我猜 flash 消息首先进入 session ……我们如何在 nose-tests 中检查 session 变量?
谢谢
最佳答案
使用 session['_flashes'] 测试 flashes 的方法对我不起作用,因为在我的例子中,session 对象根本没有 '_flashes' 属性:
with client.session_transaction() as session:
flash_message = dict(session['_flashes']).get('warning')
KeyError: '_flashes
'
这可能是因为我在 Python 3.6.4 中使用的最新版本的 flask 和其他包可能工作方式不同,老实说我不知道...
对我有用的是一个简单明了的方法:
def test_flash(self):
# attempt login with wrong credentials
response = self.client.post('/authenticate/', data={
'email': 'bla@gmail.com',
'password': '1234'
}, follow_redirects=True)
self.assertTrue(re.search('Invalid username or password',
response.get_data(as_text=True)))
在我的例子中,闪现消息是“无效的用户名或密码”。
我认为它也更容易阅读。希望对遇到类似问题的人有所帮助
关于python - 在 Flask 应用 Nose 测试中检查 Flash 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29508595/