Уведомления

Группа в Telegram: @pythonsu

#1 Июль 5, 2013 10:19:26

[NK]_Jezz
От:
Зарегистрирован: 2012-03-05
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Djnago Admin Test need make not hard-core ulr

Пишу тесты для приложения на 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)



Офлайн

#2 Июль 5, 2013 10:37:49

[NK]_Jezz
От:
Зарегистрирован: 2012-03-05
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Djnago Admin Test need make not hard-core ulr

Долго искал как сделать в конце концов случайно нашел на

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'))



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version