如何在Django unittest

时间:2016-11-29 18:01:59

标签: python django unicode

我尝试通过执行以下操作检查Django unittest内部响应的正文以查找特定文本:

response = client.post('/path/to/form', form_data)
self.assertTrue('some text' in unicode(response, 'utf-8', 'ignore'))

然而,我收到错误:

TypeError: coercing to Unicode: need string or buffer, TemplateResponse found

如果我将unicode()替换为str(),它可以正常工作,但这会阻止我查找Unicode文本。为什么将TemplateResponse转换为unicode,就像它可以用于str?

2 个答案:

答案 0 :(得分:1)

如果您想检查回复的正文,那么典型的方法是使用response.content,而不是尝试调用unicode(response)

答案 1 :(得分:0)

使用self.assertContains(response, 'some text')