Как утверждать в Django, что F только один раз в ABCDEF - PullRequest
0 голосов
/ 06 февраля 2012

как мне утверждать, что F появляется только один раз в ABCDEF?

Я использовал assertEqual, но django утверждает, что:

Traceback (most recent call last):
  File "/Users/jorrit/virtualenvs/voetbabbel/voetbabbel/apps/mass_mailer/tests.py", line 61, in test_create_mailing_list
    self.assertContains(p.user.email,"@", 1, status_code=200)
  File "/Library/Python/2.7/site-packages/django/test/testcases.py", line 419, in assertContains
    self.assertEqual(response.status_code, status_code,
AttributeError: 'unicode' object has no attribute 'status_code'

и мой код в тесте:

self.assertContains(p.user.email,"@", 1)

Ответы [ 3 ]

2 голосов
/ 06 февраля 2012

Выезд assertEqual. Вот как тестирует Django документация для такого рода вещей. Использование assertEqual таким образом даст вам немного больше отзывов, чем assertTrue при сбое.

self.assertEqual(p.user.email.count('@'), 1)
2 голосов
/ 06 февраля 2012

assertContains не для проверки случайных строк.Он предназначен для проверки ответа в поле зрения, в частности, в том, что ответ содержит определенный фрагмент текста.Если вы не используете TestClient и не проверяете ответ одного из ваших представлений, вы не можете его использовать.

1 голос
/ 06 февраля 2012

Как говорит Крис, это не то, для чего assertContains. Вы можете использовать одно из стандартных утверждений:

self.assertTrue(p.user.email.count('@') == 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...