Django Testing: определить, какое представление было выполнено - PullRequest
4 голосов
/ 08 сентября 2010

В документации по тестированию Django они обещают, что вы можете "Проверить, выполняется ли правильное представление для данного URL."какой вид был выполнен.Я ожидаю, что в Response классе , но в исполняемом представлении нет ничего.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 08 сентября 2010

Вы можете извлечь имя функции вида таким образом

from django.test.client import Client
c = Client()
response = c.get('/')
from django.core.urlresolvers import resolve
resolve(response.request["PATH_INFO"])[0].func_name
1 голос
/ 16 октября 2012

Ответ Дейва включает HTTP-запрос каждый раз, когда вы тестируете URL, который может быть медленным.Если вы просто хотите узнать, к какому разрешению относится URL-адрес, вы можете сделать это, не используя Client:

>>> from django.core.urlresolvers import get_resolver
>>> from myapp.views import func_to_test
>>> resolver = get_resolver(None)
>>> match = resolver.resolve('/some/path/')
>>> if match.func is func_to_test:
>>>    print "correct function for resolution!"

Пост Райана Вилкокса о тестировании маршрута более подробно описан и даетметоды, облегчающие их тестирование.

...