python3: update idp login redirection (#40730)
This commit is contained in:
parent
26dd217655
commit
8c16da984d
|
@ -15,13 +15,13 @@
|
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import json
|
||||
import urllib
|
||||
|
||||
from django.conf import settings
|
||||
from django.shortcuts import resolve_url
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.views.generic import ListView, View
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.utils.http import quote
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.contrib.auth import logout as auth_logout
|
||||
from django.contrib.auth import views as auth_views
|
||||
|
@ -101,7 +101,7 @@ def login(request, *args, **kwargs):
|
|||
if not 'next' in request.GET:
|
||||
return HttpResponseRedirect(resolve_url('mellon_login'))
|
||||
return HttpResponseRedirect(resolve_url('mellon_login') + '?next='
|
||||
+ urllib.quote(request.GET.get('next')))
|
||||
+ quote(request.GET.get('next')))
|
||||
return auth_views.login(request, template_name='bijoe/login.html')
|
||||
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ import copy
|
|||
import hashlib
|
||||
import json
|
||||
|
||||
import mock
|
||||
import pytest
|
||||
from webtest import Upload
|
||||
|
||||
|
@ -275,3 +276,14 @@ def test_geojson_view(schema1, app, admin, visualization, settings):
|
|||
resp = app.get('/visualization/%s/geojson/' % visualization.id)
|
||||
assert resp.content_type == 'application/json'
|
||||
assert len(resp.json) == 8
|
||||
|
||||
|
||||
@mock.patch('bijoe.views.get_idps', return_value=[{'METADATA': '...'}])
|
||||
@mock.patch('bijoe.views.resolve_url', return_value='foo-url')
|
||||
def test_mellon_idp_redirections(mocked_resolv_url, mocked_get_idps, app):
|
||||
resp = app.get('/accounts/login/', status=302)
|
||||
assert resp.location == 'foo-url'
|
||||
resp = app.get('/accounts/login/?next=http://foo/?bar', status=302)
|
||||
assert resp.location == 'foo-url?next=http%3A//foo/%3Fbar'
|
||||
resp = app.get('/accounts/logout/', status=302)
|
||||
assert resp.location == 'foo-url'
|
||||
|
|
Loading…
Reference in New Issue