Skip to content

Commit 79e327f

Browse files
committed
django_login_required_middleware fixture
1 parent f97199b commit 79e327f

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

oauth2_provider/compat.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
# Django 5.1 introduced LoginRequiredMiddleware, and login_not_required decorator
88
from django.contrib.auth.decorators import login_not_required
99
except ImportError:
10-
1110
def login_not_required(view_func):
1211
return view_func
1312

oauth2_provider/views/introspect.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
from django.utils.decorators import method_decorator
77
from django.views.decorators.csrf import csrf_exempt
88

9-
from oauth2_provider.models import get_access_token_model
10-
from oauth2_provider.views.generic import ClientProtectedScopedResourceView
9+
from ..compat import login_not_required
10+
from ..models import get_access_token_model
11+
from ..views.generic import ClientProtectedScopedResourceView
1112

1213

1314
@method_decorator(csrf_exempt, name="dispatch")
15+
@method_decorator(login_not_required, name="dispatch")
1416
class IntrospectTokenView(ClientProtectedScopedResourceView):
1517
"""
1618
Implements an endpoint for token introspection based

tests/conftest.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from urllib.parse import parse_qs, urlparse
55

66
import pytest
7+
from django import VERSION
78
from django.conf import settings as test_settings
89
from django.contrib.auth import get_user_model
910
from django.urls import reverse
@@ -294,3 +295,9 @@ def oidc_non_confidential_tokens(oauth2_settings, public_application, test_user,
294295
"openid",
295296
"http://other.org",
296297
)
298+
299+
@pytest.fixture(autouse=True)
300+
def django_login_required_middleware(settings):
301+
# Django 5.1 introduced LoginRequiredMiddleware
302+
if VERSION[0] >= 5 and VERSION[1] >= 1:
303+
settings.MIDDLEWARE = [*settings.MIDDLEWARE, "django.contrib.auth.middleware.LoginRequiredMiddleware"]

tox.ini

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ envlist =
1010
py{38,39,310,311}-dj41,
1111
py{38,39,310,311,312}-dj42,
1212
py{310,311,312}-dj50,
13+
py{310,311,312}-dj51,
1314
py{310,311,312}-djmain,
1415

1516
[gh-actions]
@@ -28,6 +29,7 @@ DJANGO =
2829
4.1: dj41
2930
4.2: dj42
3031
5.0: dj50
32+
5.1: dj51
3133
main: djmain
3234

3335
[pytest]
@@ -55,7 +57,8 @@ deps =
5557
dj40: Django>=4.0.0,<4.1
5658
dj41: Django>=4.1,<4.2
5759
dj42: Django>=4.2,<4.3
58-
dj50: Django>=5.0b1,<5.1
60+
dj50: Django>=5.0,<5.1
61+
dj51: Django>=5.1,<5.2
5962
djmain: https://github.com/django/django/archive/main.tar.gz
6063
djangorestframework
6164
oauthlib>=3.1.0

0 commit comments

Comments
 (0)