示例#1
0
    def test_default_get_client_username(self):
        expected = 'test-username'

        request = AxesHttpRequest()
        request.POST['username'] = expected

        actual = get_client_username(request)

        self.assertEqual(expected, actual)
示例#2
0
    def test_default_get_client_username(self):
        expected = 'test-username'

        request = AxesHttpRequest()
        request.POST['username'] = expected

        actual = get_client_username(request)

        self.assertEqual(expected, actual)
示例#3
0
    def test_default_get_client_username_credentials(self):
        expected = 'test-username'
        expected_in_credentials = 'test-credentials-username'

        request = AxesHttpRequest()
        request.POST['username'] = expected
        credentials = {'username': expected_in_credentials}

        actual = get_client_username(request, credentials)

        self.assertEqual(expected_in_credentials, actual)
示例#4
0
    def test_custom_get_client_username_from_credentials(self):
        provided = 'test-username'
        provided_in_credentials = 'test-credentials-username'
        expected_in_credentials = 'prefixed-' + provided_in_credentials

        request = AxesHttpRequest()
        request.POST['username'] = provided
        credentials = {'username': provided_in_credentials}

        actual = get_client_username(request, credentials)

        self.assertEqual(expected_in_credentials, actual)
示例#5
0
    def test_custom_get_client_username_from_credentials(self):
        provided = 'test-username'
        provided_in_credentials = 'test-credentials-username'
        expected_in_credentials = 'prefixed-' + provided_in_credentials

        request = AxesHttpRequest()
        request.POST['username'] = provided
        credentials = {'username': provided_in_credentials}

        actual = get_client_username(request, credentials)

        self.assertEqual(expected_in_credentials, actual)
示例#6
0
    def test_default_get_client_username_credentials(self):
        expected = 'test-username'
        expected_in_credentials = 'test-credentials-username'

        request = AxesHttpRequest()
        request.POST['username'] = expected
        credentials = {
            'username': expected_in_credentials
        }

        actual = get_client_username(request, credentials)

        self.assertEqual(expected_in_credentials, actual)
示例#7
0
def get_lockout_response(request: AxesHttpRequest,
                         credentials: dict = None) -> HttpResponse:
    status = 403
    context = {
        'failure_limit': settings.AXES_FAILURE_LIMIT,
        'username': get_client_username(request, credentials) or ''
    }

    cool_off = get_cool_off()
    if cool_off:
        context.update({'cool_off': get_cool_off_iso8601(cool_off)})

    if request.is_ajax():
        return JsonResponse(
            context,
            status=status,
        )

    if settings.AXES_LOCKOUT_TEMPLATE:
        return render(
            request,
            settings.AXES_LOCKOUT_TEMPLATE,
            context,
            status=status,
        )

    if settings.AXES_LOCKOUT_URL:
        return HttpResponseRedirect(settings.AXES_LOCKOUT_URL, )

    return HttpResponse(
        get_lockout_message(),
        status=status,
    )
示例#8
0
def get_lockout_response(request: AxesHttpRequest, credentials: dict = None) -> HttpResponse:
    status = 403
    context = {
        'failure_limit': settings.AXES_FAILURE_LIMIT,
        'username': get_client_username(request, credentials) or ''
    }

    cool_off = get_cool_off()
    if cool_off:
        context.update({
            'cooloff_time': get_cool_off_iso8601(cool_off),  # differing old name is kept for backwards compatibility
        })

    if request.is_ajax():
        return JsonResponse(
            context,
            status=status,
        )

    if settings.AXES_LOCKOUT_TEMPLATE:
        return render(
            request,
            settings.AXES_LOCKOUT_TEMPLATE,
            context,
            status=status,
        )

    if settings.AXES_LOCKOUT_URL:
        return HttpResponseRedirect(
            settings.AXES_LOCKOUT_URL,
        )

    return HttpResponse(
        get_lockout_message(),
        status=status,
    )
示例#9
0
 def setUp(self):
     self.request = AxesHttpRequest()
示例#10
0
 def setUp(self):
     self.request = AxesHttpRequest()
     self.request.method = 'GET'
示例#11
0
 def setUp(self):
     self.request = AxesHttpRequest()
     self.request.method = 'POST'
     self.request.META['REMOTE_ADDR'] = '127.0.0.1'
     self.request.axes_ip_address = '127.0.0.1'
示例#12
0
 def test_get_client_username_str(self):
     self.assertEqual(
         get_client_username(AxesHttpRequest(), {}),
         'username',
     )
示例#13
0
 def test_get_client_username_not_callable(self):
     with self.assertRaises(TypeError):
         get_client_username(AxesHttpRequest(), {})
示例#14
0
 def test_get_client_username_invalid_callable_too_many_arguments(self):
     with self.assertRaises(TypeError):
         get_client_username(AxesHttpRequest(), {})
示例#15
0
 def test_get_client_username(self):
     self.assertEqual(get_client_username(AxesHttpRequest(), {}), 'example')