Использование Django.test.client для проверки шаблонов - PullRequest
2 голосов
/ 30 мая 2010

У меня есть вид, который я пытаюсь проверить с помощью объекта Client.Могу ли я добраться до переменных, которые я ввел в render_to_response моего представления?

Пример представления:

def myView(request):

    if request.method == "POST":
        # do the search
        return render_to_response('search.html',{'results':results},context_instance=RequestContext(request))
    else:
        return render_to_response('search.html',context_instance=RequestContext(request))

Тест:

c = Client()

response = c.post('/school/search/', {'keyword':'beagles'})
# how do I get to the 'results'

РЕДАКТИРОВАТЬ:

Из Документы , я почти уверен, что я должен использовать:
response.context["results"]

... но response.contextИ response.template оба возвращают None

1 Ответ

2 голосов
/ 30 мая 2010

Ну, нашел свой ответ. Когда вы запускаете тест самостоятельно, этот материал не заполняется, но если вы запустите его с manage.py test, он заполнится. Если вы хотите, чтобы автономный тест работал, добавьте его начало вашего сценария:

from django.test.utils import setup_test_environment
setup_test_environment() 

Вот мои настройки тестовой среды в верхней части моего скрипта (для справки):

#!/usr/bin/env python

### Start ENV Setup
import os, sys
sys.path.append('/Users/me/Documents/Web/django_projects/myproject')

from django.core.management import setup_environ

import settings
print "Setting environment to:", setup_environ(settings), "\n"

from django.test.utils import setup_test_environment
setup_test_environment()
### Finish ENV Setup

#-------------------

# Start the Fun! >>
from myproject.myapp.models import mymodel
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...