Тестирование Django, присутствует контент assert CSV - PullRequest
0 голосов
/ 18 сентября 2018

Я делаю тест для проверки содержимого файла 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 голосов
/ 18 сентября 2018

Глядя на трассировку стека, которую вы добавили в вопрос, трассировка стека соответствует вызову 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", если вы хотите, чтобы мы могли вам помочь.

...