Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> django тестирование на ошибку 404 
V
    Опции темы
Stolzen
Дата 5.4.2011, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 1
Всего: 48



Доброе время суток!

Разрабатываю проект в django.

По логике, требуется проверить некоторое условие и выводить ошибку 404 в случае, если условие не соблюдается.

Пишу тест:
Код

    def test_check_all_unspecified_pages_for_inaccessability(self):
        # логинимся 
        login = self.client.login(username=self.usr_name, password=self.usr_pswd)
        self.assertEquals(login, True)
        
        uspecified_models = set(all_models) - set(models)

        codes = {404, } 
        
        for m in uspecified_models:
            response = self.client.post(self.root + m + '/', {})
            self.assertTrue(response.status_code in codes, "%s доступен, хотя не должен быть" % m)
       
        self.client.logout()


Реализую:

Код

    def check_the_entity(self, entity_name):
    # проверяем, что сущность есть в списке сущностей - иначе выводим ошибку 404
        if not entity_name in self.USED_MODELS:
            raise Http404


Однако при запусте тестов, появляется ошибка 
Код

AttributeError: 'module' object has no attribute 'handler500'


Код

Traceback (most recent call last):
  File "/home/alesha/development/web/simsim-nn/simsim/service/tests/techalanyst_tests.py", line 72, in test_check_all_unspecified_pages_for_inaccessability
    response = self.client.post(self.root + m + '/', {})
  File "/usr/lib/python2.7/site-packages/django/test/client.py", line 330, in post
    response = self.request(**r)
  File "/usr/lib/python2.7/site-packages/django/test/client.py", line 238, in request
    response = self.handler(environ)
  File "/usr/lib/python2.7/site-packages/django/test/client.py", line 79, in __call__
    response = self.get_response(request)
  File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 130, in get_response
    return self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 179, in handle_uncaught_exception
    callback, param_dict = resolver.resolve500()
  File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py", line 263, in resolve500
    return self._resolve_special('500')
  File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py", line 253, in _resolve_special
    callback = getattr(self.urlconf_module, 'handler%s' % view_type)
AttributeError: 'module' object has no attribute 'handler500'


Просто так если проверять, то все работает, как надо - при написании в браузере неверных имен, появляется ошибка 404.

Гуглил, так ничего и не нагуглил - в одном случае писали, что надо явно импортировать handler500, handler404  в urlconf.
Попробовал:

Код

from django.conf.urls.defaults import patterns, url, include, handler500, handler404 
from simsim.service.view import generic_urls, techanalyst

urlpatterns = patterns('simsim.service.views',
    url(r'^$', "index", name='index'),

    url(r'^login/$', "user_login", name="login"),
    url(r'^try/$', "try_pswd", name='try_pswd'),
    url(r'^logout/$', "user_logout", name='user_logout'),
    
    url(r'^generic/', include(generic_urls.urls)),
    url(r'^techanalyst/', include(techanalyst.urls)),
    
)

#error_patterns = patterns('',
#    url(r'^404$', handler404, name='handler404'),
#    url(r'^500$', handler500, name='handler500'),
#)
#
#urlpatterns += error_patterns


Последняя строка закомментирована, однако при проверке я туда что только не подставлял - и 404, 500 в качестве имен, и handler404, handler500.
Так и не заставил работать.

Может, кто сталкивался с подобным.

(self.client.get(self.root + m + '/', {}) тоже пробовал)


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Daevaorn
Дата 5.4.2011, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 3
Всего: 70



У вас есть шаблон 404.html ?
PM MAIL WWW   Вверх
Stolzen
Дата 5.4.2011, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 1
Всего: 48



Да, 404.html лежит в templates (пустая)
Однако 500.html нет. Создал пустой 500.html и - о чудо, все заработало.


Спасибо!


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема »


 




[ Время генерации скрипта: 0.0431 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.