Найти - Пользователи
Полная версия: Djnago Admin Test need make not hard-core ulr
Начало » Python для новичков » Djnago Admin Test need make not hard-core ulr
1
[NK]_Jezz
Пишу тесты для приложения на Django!
Есть вполне себе стандартный url.py
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
url(r'^', include('coffe_cups.urls')),
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
url(r'^admin/', include(admin.site.urls), name='django-admin'),
(r'^media/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
)
urlpatterns += staticfiles_urlpatterns()
И обычный тест для авторизации в админке.
import django.test as test
from models import Contact, Http_Request
test.utils.setup_test_environment()
from django.core.urlresolvers import reverse


class BaristaAppTestCase(test.TestCase):
fixtures = ['initial_data.json']

def setUp(self):
self.client = test.Client()

def test_admin_login(self):
admin = {
'name': 'admin',
'password': 'admin',
}
response = self.client.post('/admin/', admin)
self.assertEqual(response.status_code, 200)
Необходимо сделать в тесте не хардкорный url что-то типо:
url(r'^accounts/login/$', 'django.contrib.auth.views.login', name='login'),
admin = {
'name': 'admin',
'password': 'admin',
}
response = self.client.post(reverse('login'), admin)
self.assertEqual(response.status_code, 200)
[NK]_Jezz
Долго искал как сделать в конце концов случайно нашел на

https://docs.djangoproject.com/en/dev/ref/urlresolvers/#django.core.urlresolvers.reverse
https://docs.djangoproject.com/en/dev/topics/http/urls/#topics-http-reversing-url-namespaces
Выглядит это так
response = self.client.post(reverse('admin:index'))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB