Что является эквивалентом Rails Testing Routes в Django? - PullRequest
1 голос
/ 24 августа 2009

Я читал документ Rails по тестированию , и он объясняет различные типы тестов. Я также заметил раздел Тестирование маршрутов . Кто-нибудь знает, как я могу сделать это в Django / Python? У меня есть несколько веб-сайтов с некоторыми общими URL-адресами, которые мне нужно проверить. Вот как это делается в Ruby:

def test_should_route_to_post 
  assert_routing '/posts/1', { :controller => "posts", :action => "show", :id => "1" }
end 

Ответы [ 2 ]

2 голосов
/ 16 октября 2012

Если вы просто хотите протестировать маршруты, как это делает Rails, Райан Уилкокс объясняет, как тестировать маршруты напрямую . Чтобы (кратко) инкапсулировать его ответ, вы можете импортировать распознаватель и проверить, что он разрешает:

>>> from django.core.urlresolvers import get_resolver
>>> resolver = get_resolver(None)
>>> resolver.resolve('/some/path/')
ResolverMatch(func=...)

Обратите внимание, что при несовпадении выдается исключение, которое вам нужно будет отловить.

get_resolver(None) дает вам средство распознавания для всех маршрутов в ваших активных settings.py; если вы просто хотите проверить маршруты из одного приложения, вы можете сделать что-то вроде:

>>> from django.core.urlresolvers import get_resolver
>>> import my_app
>>> resolver = get_resolver(my_app.urls)

(p.s. Вышесказанное предполагает, что вы в переводчике django-happy, запущенном python manage.py shell)

0 голосов
/ 24 августа 2009

Django имеет довольно обширную библиотеку для тестирования веб-приложений Django. Детали тестирования немного выходят за рамки этого ответа, но вы можете прочитать соответствующие документы о тестировании приложений Django для получения более подробной информации. В частности, я думаю, что вас заинтересуют разделы о отправке запросов и проверке ответов , которые позволяют отправлять запросы на URL-адреса (для целей тестирования) и тестировать ответы. Django также имеет подкласс TestCase, который включает утверждений , специально предназначенных для использования с HTTP-запросами и ответами.

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