Django测试,断言CSV内容存在

时间:2018-09-18 10:06:41

标签: python django django-testing django-tests

我正在做一个测试,以使用csv检查assertContains()文件的内容:

response = client.get('/abc/1/a_b_csv')
print(response.content)
self.assertContains(response.content, 'aakash')

我尝试了其他选项,例如self.assertContains(response,'aakash') 但没有任何结果。

我的csv文件看起来像

Name Age
Aakash 22

有时会出现错误:

bName\r\nVipul\r\n'
E
======================================================================
ERROR: test_csv (timepay.new_test.ReportTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/aakash/Projects/test.py", line 28, in test_csv
    self.assertNotContains(response.content, 'Vipul')
  File "/home/aakash/Projects/project_env/lib/python3.6/site-packages/django/test/testcases.py", line 402, in assertNotContains
    response, text, status_code, msg_prefix, html)
  File "/home/vipul/Projects/project_env/lib/python3.6/site-packages/django/test/testcases.py", line 355, in _assert_contains
    response.status_code, status_code,
AttributeError: 'bytes' object has no attribute 'status_code'

1 个答案:

答案 0 :(得分:1)

查看您添加到问题中的堆栈跟踪,该堆栈跟踪对应于对self.assertNotContains(response.content, 'Vipul')的调用。

在查看SimpleTestCase.assertNotContains()的文档时,我注意到该方法期望整个响应,而不仅仅是内容作为参数。

因此,更改此行:

self.assertNotContains(response.content, 'Vipul')

对此

self.assertNotContains(response, 'Vipul')

应清除您为其添加了堆栈跟踪的错误。


现在,我注意到您的问题中也有此行:

  

我尝试了其他选项,例如self.assertContains(response,'aakash'),但没有得到任何结果。

如果您希望我们能够为您提供帮助,则您必须更具体地说明"didn't get any result"的含义。