Тестовый клиент Django Ответ содержит пустой список шаблонов? - PullRequest
4 голосов
/ 31 октября 2011

Согласно документам по тестированию Django, объект Response клиента Django содержит «шаблоны», а именно: «Список экземпляров Template, используемых для визуализации конечного содержимого, в порядке их отображения.используйте template.name, чтобы получить имя файла шаблона, если шаблон был загружен из файла. (Имя представляет собой строку, например «admin / index.html».) "

Однако я получаюпустой список шаблонов, хотя я уверен, что шаблон был обработан.

from django.test.client import Client
c = Client()
response = c.post('/signup/', {'email': 'a@b.com', 'password1': 'smith', 'password2': 'smith'}, follow=True)
print response.templates
# []

Почему шаблоны пустые?Как узнать, какой шаблон был обработан?

1 Ответ

5 голосов
/ 31 октября 2011

Вы пробовали свой код в интерактивном сеансе? Документация Django гласит:

Хотя * ваш код * [+] будет работать в интерактивном Python интерпретатор, некоторые из функциональных возможностей тестового клиента, особенно функциональность, связанная с шаблоном, доступна только во время тестирования Бег. Причиной этого является то, что тестер Django выполняет немного черная магия, чтобы определить, какой шаблон был загружен данным Посмотреть. Эта черная магия (по сути, исправление шаблона Джанго система в памяти) происходит только во время выполнения теста.

Так что, если вы запустите его в тестовом режиме, он должен работать.

[+] Я заменил * приведенный выше пример из документации django на ваш код *, чтобы сделать этот фрагмент более читабельным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...