Тестовый контекст клиента Django Нет - PullRequest
15 голосов
/ 10 ноября 2010

Я перенес свое приложение Django со своего компьютера разработчика (OS X, Python 2.6.5, Django 1.2.3) на промежуточный сервер (Ubuntu VM, Python 2.6.6, Django 1.2.3).

Если я теперь запускаю свой набор тестов на промежуточном сервере, два теста не пройдены при использовании Django TestClient, поскольку response.context имеет значение None (но response.content является правильным).

Например:

self.assertEquals(self.session.pk, response.context['db_session'].pk)

Эти тесты проходят на компьютере разработчика.

Кто-нибудь сталкивался с подобными проблемами?

Ответы [ 2 ]

9 голосов
/ 31 января 2011

Вам необходимо добавить оператор настройки теста.

import django
django.test.utils.setup_test_environment() 

Для получения более подробной информации перейдите по моей ссылке: http://jazstudios.blogspot.com/2011/01/django-testing-views.html

0 голосов
/ 06 декабря 2018

Из документации Django:

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

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

Выможно увидеть этот вопрос

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