2020-10-07 15:57:29 +00:00
|
|
|
from unittest import mock
|
|
|
|
|
|
2019-05-19 12:54:27 +00:00
|
|
|
from django.http import HttpResponse, HttpRequest
|
2020-10-07 15:57:29 +00:00
|
|
|
from django.conf import settings
|
|
|
|
|
from django.test import override_settings
|
2019-02-10 17:08:51 +00:00
|
|
|
|
|
|
|
|
from axes.middleware import AxesMiddleware
|
2019-02-22 23:22:11 +00:00
|
|
|
from axes.tests.base import AxesTestCase
|
2019-02-10 17:08:51 +00:00
|
|
|
|
|
|
|
|
|
2019-02-22 23:22:11 +00:00
|
|
|
class MiddlewareTestCase(AxesTestCase):
|
2019-05-19 12:54:27 +00:00
|
|
|
STATUS_SUCCESS = 200
|
|
|
|
|
STATUS_LOCKOUT = 403
|
2019-02-10 17:08:51 +00:00
|
|
|
|
|
|
|
|
def setUp(self):
|
2019-05-19 12:54:27 +00:00
|
|
|
self.request = HttpRequest()
|
|
|
|
|
|
|
|
|
|
def test_success_response(self):
|
|
|
|
|
def get_response(request):
|
|
|
|
|
request.axes_locked_out = False
|
|
|
|
|
return HttpResponse()
|
|
|
|
|
|
|
|
|
|
response = AxesMiddleware(get_response)(self.request)
|
|
|
|
|
self.assertEqual(response.status_code, self.STATUS_SUCCESS)
|
|
|
|
|
|
|
|
|
|
def test_lockout_response(self):
|
|
|
|
|
def get_response(request):
|
|
|
|
|
request.axes_locked_out = True
|
|
|
|
|
return HttpResponse()
|
|
|
|
|
|
|
|
|
|
response = AxesMiddleware(get_response)(self.request)
|
|
|
|
|
self.assertEqual(response.status_code, self.STATUS_LOCKOUT)
|
2020-10-07 15:57:29 +00:00
|
|
|
|
2020-11-18 21:18:48 +00:00
|
|
|
@override_settings(AXES_ENABLED=False)
|
|
|
|
|
def test_respects_enabled_switch(self):
|
|
|
|
|
def get_response(request):
|
|
|
|
|
request.axes_locked_out = True
|
|
|
|
|
return HttpResponse()
|
|
|
|
|
|
|
|
|
|
response = AxesMiddleware(get_response)(self.request)
|
|
|
|
|
self.assertEqual(response.status_code, self.STATUS_SUCCESS)
|