我尝试通过执行以下操作检查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?
答案 0 :(得分:1)
如果您想检查回复的正文,那么典型的方法是使用response.content
,而不是尝试调用unicode(response)
。
答案 1 :(得分:0)
使用self.assertContains(response, 'some text')