When I run the full test suite in Django, I get errors regarding the lack of MessageMiddleware

My application is called abcapp. I am running Django 1.5b1 on Python 2.7. The same problem occurs in the latest release of trunk django.

When I run manage.py test abcapp , all the tests I wrote pass.

When I run manage.py test , I get a cascade of crashes. The first of these failures is shown:

 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 

Test results:

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

Unlike posts, I have django.contrib.messages.middleware.MessageMiddleware in my MIDDLEWARE_CLASSES . The value of my MIDDLEWARE_CLASSES lower. I use messages in my application without any problems.

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

Can anyone shed some light on this issue? Although I can only run my own tests, I would like to run the entire package to ensure proper quality control.

Research results: I noticed that when testing my client, testing the HTTP client does not load. I discovered this when I tried to test my own middleware through web requests in a test client. If so, would that mean that there is unchecked code in the djanog kernel?

+6
source share
1 answer

This seems to be a bug in the Windows version.

Here's the problem. A file session does not store any data on Windows . Recommended solution: just replace os.rename with shutil.move in django/contrib/sessions/backends/file.py :

 +import shutil .... -os.rename(output_file_name, session_file_name) +shutil.move(output_file_name, session_file_name) 

Source patch

+8
source

All Articles