2015-07-01 2 views
0

Я пытаюсь добавить тестирование к моему приложению Django 1.8, и у меня возникают проблемы с тестом, чтобы убедиться, что регистрация прошла успешно. Я не знаю, как отлаживать, чтобы понять, что не так.Django Response не имеет содержания - Как отлаживать?

После настройки клиента я делаю следующий код в своем коде.

class LoginTests(TestCase): 
    def setUp(self): 
     self.client = Client() 

    def test_user_can_select_vegetarian_on_account_create(self): 

     data = {'username': 'TestUser', 'password1':'pass', 'password2':'pass', 'email':'[email protected]', 'is_admin':True} 
     r = self.client.post('/register/', data) 
     print(r.content) 
     self.assertTrue(r.context is not None) 
    print(list(User.objects.all())) 

в print(r.content) просто печатает пустой, так что ничего не возвращается, хотя это ответ. Когда я смотрю код состояния, я получаю 302.

Я не уверен, как увидеть, что происходит не так, поэтому я просто смотрю, как отлаживать этот процесс. Операции с печатью в коде сервера не отображаются, поэтому я полностью потерял то, что происходит. Есть идеи?

+0

Я также должен сказать, что у меня есть отпечатки на стороне сервера для печати, вызвав тестер с '-v 1', но я до сих пор не могу понять, что происходит не так. – skaz

+0

Пробовал использовать pdb? – TheGeorgeous

+1

Я предполагаю, что 302 должен сказать браузеру сделать другой запрос к данному URL-адресу, так что все работает так, как ожидалось? Браузер не возвращает другую страницу - он сообщает клиенту выполнить другой запрос. Может кто-нибудь подтвердить? – skaz

ответ

3

302 код состояния означает перенаправление, если вы хотите увидеть содержимое, что перенаправлять вы должны добавить «follow=True»:

response = self.client.post('/register/', data, follow=True) 

https://docs.djangoproject.com/en/1.8/topics/testing/tools/

, кстати ... для того, чтобы отладить что происходит, я предлагаю вам использовать среду IDE, такую ​​как PyCharm, в которой вы можете добавить контрольные точки и пройти код шаг за шагом!

+0

Не нужно использовать идеал для отладки. Вы можете сделать это отлично в консоли, используя 'pdb'. –

+0

Да, но IDE намного проще, удобна в использовании и удобна в использовании;) – daveoncode

Смежные вопросы