Skip to content

Commit 8233efd

Browse files
committed
reverse doesnt take dotted strings since django 1.10
1 parent 05f38d8 commit 8233efd

File tree

2 files changed

+12
-10
lines changed

2 files changed

+12
-10
lines changed

oauthadmin/views.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
from oauthadmin.utils import import_by_path
1515
from oauthadmin.settings import app_setting
16+
import oauthadmin.views
1617

1718

1819
def destroy_session(request):
@@ -28,7 +29,7 @@ def login(request):
2829
# this view can be called directly by django admin site from
2930
# any url, or can be accessed by the login url if the urls
3031
# from this app were included
31-
if request.path == reverse('oauthadmin.views.login'):
32+
if request.path == reverse(oauthadmin.views.login):
3233
# if this view is being accessed from login url look for 'next'
3334
# in query string to use as destination after the login is complete
3435
next = request.GET.get('next')
@@ -39,7 +40,7 @@ def login(request):
3940
# don't support it yet)
4041
next = request.get_full_path()
4142

42-
redirect_uri = request.build_absolute_uri(reverse('oauthadmin.views.callback'))
43+
redirect_uri = request.build_absolute_uri(reverse(oauthadmin.views.callback))
4344
if next:
4445
redirect_uri += '?next='+next
4546

@@ -57,7 +58,7 @@ def login(request):
5758

5859
def callback(request):
5960
if 'oauth_state' not in request.session:
60-
return HttpResponseRedirect(request.build_absolute_uri(reverse('oauthadmin.views.login')))
61+
return HttpResponseRedirect(request.build_absolute_uri(reverse(oauthadmin.views.login)))
6162
oauth = OAuth2Session(app_setting('CLIENT_ID'), state=request.session['oauth_state'])
6263
try:
6364
token = oauth.fetch_token(
@@ -66,7 +67,7 @@ def callback(request):
6667
authorization_response=app_setting('AUTH_URL') + "?" + request.GET.urlencode()
6768
)
6869
except (MismatchingStateError, InvalidGrantError):
69-
return HttpResponseRedirect(request.build_absolute_uri(reverse('oauthadmin.views.login')))
70+
return HttpResponseRedirect(request.build_absolute_uri(reverse(oauthadmin.views.login)))
7071

7172
user = import_by_path(app_setting('GET_USER'))(token)
7273

@@ -90,4 +91,4 @@ def logout(request):
9091

9192

9293
def logout_redirect(request):
93-
return redirect(app_setting('BASE_URL') + 'logout?next=' + quote_plus(request.build_absolute_uri(reverse('oauthadmin.views.logout'))))
94+
return redirect(app_setting('BASE_URL') + 'logout?next=' + quote_plus(request.build_absolute_uri(reverse(oauthadmin.views.logout))))

test/test_views.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from oauthlib.oauth2.rfc6749.errors import MismatchingStateError, InvalidGrantError
55
from django.test.client import RequestFactory
66
from django.core.urlresolvers import reverse
7+
import oauthadmin.views
78

89

910
SESSION_VARIABLES = ['oauth_state', 'oauth_token', 'uid', 'user']
@@ -41,7 +42,7 @@ def test_login(app_setting, OAuth2Session, request_factory):
4142
OAuth2Session.return_value = mock.Mock(
4243
authorization_url = mock.Mock(return_value = ('https://foo', 'state-variable'))
4344
)
44-
request = request_factory.get(reverse('oauthadmin.views.login'))
45+
request = request_factory.get(reverse(oauthadmin.views.login))
4546
request.session = {}
4647
request.build_absolute_uri = mock.Mock(return_value='https://test.com/construct-redirect')
4748

@@ -57,7 +58,7 @@ def test_login_redirect_uri(OAuth2Session, request_factory):
5758
OAuth2Session.return_value = mock.Mock(
5859
authorization_url = mock.Mock(return_value = ('https://foo', 'state-variable'))
5960
)
60-
request = request_factory.get(reverse('oauthadmin.views.login'))
61+
request = request_factory.get(reverse(oauthadmin.views.login))
6162
request.session = {}
6263
request.build_absolute_uri = mock.Mock(return_value='https://test.com/construct-redirect')
6364

@@ -74,7 +75,7 @@ def test_login_redirect_uri_with_next_from_url(OAuth2Session, request_factory):
7475
OAuth2Session.return_value = mock.Mock(
7576
authorization_url = mock.Mock(return_value = ('https://foo', 'state-variable'))
7677
)
77-
request = request_factory.get(reverse('oauthadmin.views.login') + '?next=/admin/content/')
78+
request = request_factory.get(reverse(oauthadmin.views.login) + '?next=/admin/content/')
7879
request.session = {}
7980
request.build_absolute_uri = mock.Mock(return_value='https://test.com/construct-redirect')
8081

@@ -143,7 +144,7 @@ def test_callback_with_invalid_grant(import_by_path, app_setting, OAuth2Session,
143144
@mock.patch('oauthadmin.views.app_setting')
144145
@mock.patch('oauthadmin.views.import_by_path')
145146
def test_callback(import_by_path, app_setting, OAuth2Session, request_factory):
146-
request = request_factory.get(reverse('oauthadmin.views.callback'))
147+
request = request_factory.get(reverse(oauthadmin.views.callback))
147148
request.session = {'oauth_state': 'state-variable'}
148149
OAuth2Session.return_value = mock.Mock(
149150
fetch_token = mock.Mock(return_value = 'token')
@@ -163,7 +164,7 @@ def test_callback(import_by_path, app_setting, OAuth2Session, request_factory):
163164
@mock.patch('oauthadmin.views.app_setting')
164165
@mock.patch('oauthadmin.views.import_by_path')
165166
def test_callback_redirect_to_next(import_by_path, app_setting, OAuth2Session, request_factory):
166-
request = request_factory.get(reverse('oauthadmin.views.callback') + '?next=/admin/content/')
167+
request = request_factory.get(reverse(oauthadmin.views.callback) + '?next=/admin/content/')
167168
request.session = {'oauth_state': 'state-variable'}
168169
OAuth2Session.return_value = mock.Mock(
169170
fetch_token = mock.Mock(return_value = 'token')

0 commit comments

Comments
 (0)