python - 如何对 django 消息进行单元测试?

标签 python django unit-testing django-testing

在我的 django 应用程序中,我正在尝试编写一个单元测试来执行一个操作,然后检查响应中的消息。

据我所知,没有很好的方法可以做到这一点。

我使用的是CookieStorage存储方式,我想做类似下面的事情:

    response = self.client.post('/do-something/', follow=True)
    self.assertEquals(response.context['messages'][0], "fail.")

问题是,我得到的只是一个

print response.context['messages']
<django.contrib.messages.storage.cookie.CookieStorage object at 0x3c55250>

我怎样才能把它变成有用的东西,还是我做错了?

谢谢, 丹尼尔

最佳答案

我找到了一个非常简单的方法:

response = self.client.post('/foo/')
messages = list(response.context['messages'])
self.assertEqual(len(messages), 1)
self.assertEqual(str(messages[0]), 'my message')

如果您需要检查没有上下文的响应中的消息,您可以使用以下命令:

from django.contrib.messages import get_messages
messages = list(get_messages(response.wsgi_request))
self.assertEqual(len(messages), 1)
self.assertEqual(str(messages[0]), 'my message')

后备存储不支持索引,但它是可迭代的。

关于python - 如何对 django 消息进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2897609/

相关文章:

python - PySpark:如何按固定日期范围和使用窗口函数计算值列总和的另一列进行分组?

python - Celery:如何将不同的环境与不同的 worker 分开?

unit-testing - 测试 Sencha touch 2 应用程序

android - 如何在 Android 中模拟 PreferenceManager?

Python正则表达式将字符串拆分为数字和文本/符号

python - Pandas 出现在很多专栏上

python - 从 Python heapq 中检索最小值

javascript - Filtergraph描述中的流说明符 '' [0][1]concat=a=1 :n=1:v=1[s0] matches no streams

python - 过滤器无效 : 'revision'

.net - 如何在 NSubstitute 中使用私有(private) setter 模拟对象的索引器?