O login no Django com credenciais incorretas retorna 200 e não 401

Este é um teste bastante simples, mas não consigo acertar.

Quero verificar quais usuários podem efetuar login e executar ações (faz parte de um conjunto maior de testes), mas a primeira etapa causa alguns problemas.

class SuperUserTest(TestCase):
    def setUp(self):
        self.client = Client()
        self.su = User.objects.create_superuser('super','','the_correct_password')
    def test_su_can_login(self):
        response = self.client.post(reverse('django.contrib.auth.views.login'),
            {'username': 'super', 'password': 'the_wrong_password'})
        self.assertEqual(response.status_code,401)

        # Success redirects to the homepage, so its 302 not 200
        response = self.client.post(reverse('django.contrib.auth.views.login'),
            {'username': 'super', 'password': 'the_correct_password'})
        self.assertEqual(response.status_code,302)

Quando executo o teste, recebo:

(my_app)00:20 ~/my_app (master)$ ./manage.py test my_app.SuperUserTest
Creating test database for alias 'default'...
F
======================================================================
FAIL: test_su_can_login (my_app.SuperUserTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./my_app/tests.py", line 341, in test_su_can_login
    self.assertEqual(response.status_code,401)
AssertionError: 200 != 401

----------------------------------------------------------------------
Ran 1 test in 1.180s

FAILED (failures=1)
Destroying test database for alias 'default'...

Por que o django está retornando código HTTP200 quando eu logar incorretamente?

Para um contexto adicional, veja como estou gerenciando os URLs de logon / logout:

urlpatterns = patterns('',
    # Examples:
    url(r'^accounts/login/?, 'django.contrib.auth.views.login'),
    url(r'^accounts/logout/?, 'django.contrib.auth.views.logout',
        {'next_page': '/'}),

questionAnswers(2)

yourAnswerToTheQuestion