Контекст ответа клиента клиента Django Нет

Я перенес свое приложение 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)

Эти тестовые примеры передаются на машину разработки.

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

Ответы

Ответ 1

Вам нужно добавить инструкцию для установки теста.

import django
django.test.utils.setup_test_environment() 

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

Ответ 2

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

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

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

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