Когда я запускаю полный набор тестов в Django, я получаю ошибки об отсутствии MessageMiddleware
Мое приложение называется abcapp. Я использую Django 1.5b1 на Python 2.7. Та же проблема возникает в последнем выпуске ствола django.
Когда я бегу manage.py test abcapp
все тесты, которые я написал, проходят.
Когда я бегу manage.py test
Я получаю каскад неудач. Первый из этих сбоев показан:
Traceback (most recent call last):
File "C:\Program Files\Django-1.5b1\django\core\handlers\base.py", line 116, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "C:\Program Files\Django-1.5b1\django\views\decorators\cache.py", line 89, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "C:\Program Files\Django-1.5b1\django\contrib\messages\tests\urls.py", line 30, in add
getattr(messages, message_type)(request, msg)
File "C:\Program Files\Django-1.5b1\django\contrib\messages\api.py", line 70, in debug
fail_silently=fail_silently)
File "C:\Program Files\Django-1.5b1\django\contrib\messages\api.py", line 22, in add_message
raise MessageFailure('You cannot add messages without installing '
MessageFailure: You cannot add messages without installing django.contrib.messages.middleware.MessageMiddleware
Результаты теста:
======================================================================
FAIL: test_clearsessions_command (django.contrib.sessions.tests.FileSessionTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Program Files\Django-1.5b1\django\test\utils.py", line 213, in inner
return test_func(*args, **kwargs)
File "C:\Program Files\Django-1.5b1\django\contrib\sessions\tests.py", line 444, in test_clearsessions_command
self.assertEqual(1, count_sessions())
AssertionError: 1 != 2
----------------------------------------------------------------------
Ran 474 tests in 5.768s
FAILED (failures=1, skipped=141, expected failures=1)
Вопреки сообщениям, у меня есть django.contrib.messages.middleware.MessageMiddleware
в моем MIDDLEWARE_CLASSES
, Ценность моего MIDDLEWARE_CLASSES
ниже. Я использую сообщения в моем приложении без каких-либо проблем.
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
Кто-нибудь может пролить свет на этот вопрос? Хотя я могу запускать только свои собственные тесты, я хотел бы запустить весь пакет, чтобы обеспечить надлежащий контроль качества.
Результаты исследования: в ходе собственного тестирования я заметил, что при использовании тестового http-клиента промежуточное программное обеспечение не загружается. Я обнаружил это, когда пытался протестировать свое промежуточное ПО через веб-запросы в тестовом клиенте. Если это так, значит ли это, что в ядре djanog есть непроверяемый код?
1 ответ
Кажется, это ошибка версии Windows.
Вот проблема Файловый сеанс не хранит никаких данных в Windows. Рекомендуемое решение: просто замените os.rename
с shutil.move
в django/contrib/sessions/backends/file.py
:
+import shutil
....
-os.rename(output_file_name, session_file_name)
+shutil.move(output_file_name, session_file_name)