misc: allow all views to receive template_base/context_hook kwargs (#38610)
This commit is contained in:
parent
fcb38fbf83
commit
7802e85d52
|
@ -495,7 +495,7 @@ login = transaction.non_atomic_requests(csrf_exempt(LoginView.as_view()))
|
||||||
|
|
||||||
|
|
||||||
class LogoutView(ProfileMixin, LogMixin, View):
|
class LogoutView(ProfileMixin, LogMixin, View):
|
||||||
def get(self, request):
|
def get(self, request, *args, **kwargs):
|
||||||
if 'SAMLRequest' in request.GET:
|
if 'SAMLRequest' in request.GET:
|
||||||
return self.idp_logout(request)
|
return self.idp_logout(request)
|
||||||
elif 'SAMLResponse' in request.GET:
|
elif 'SAMLResponse' in request.GET:
|
||||||
|
@ -581,6 +581,6 @@ class LogoutView(ProfileMixin, LogMixin, View):
|
||||||
logout = LogoutView.as_view()
|
logout = LogoutView.as_view()
|
||||||
|
|
||||||
|
|
||||||
def metadata(request):
|
def metadata(request, **kwargs):
|
||||||
metadata = utils.create_metadata(request)
|
metadata = utils.create_metadata(request)
|
||||||
return HttpResponse(metadata, content_type='text/xml')
|
return HttpResponse(metadata, content_type='text/xml')
|
||||||
|
|
|
@ -192,6 +192,8 @@ def test_sso_slo(db, app, idp, caplog, sp_settings):
|
||||||
assert 'created new user' in caplog.text
|
assert 'created new user' in caplog.text
|
||||||
assert 'logged in using SAML' in caplog.text
|
assert 'logged in using SAML' in caplog.text
|
||||||
assert urlparse.urlparse(response['Location']).path == '/whatever/'
|
assert urlparse.urlparse(response['Location']).path == '/whatever/'
|
||||||
|
response = app.get(reverse('mellon_logout'))
|
||||||
|
assert urlparse.urlparse(response['Location']).path == '/singleLogout'
|
||||||
|
|
||||||
|
|
||||||
def test_sso(db, app, idp, caplog, sp_settings):
|
def test_sso(db, app, idp, caplog, sp_settings):
|
||||||
|
@ -224,6 +226,7 @@ def test_sso_request_denied(db, app, idp, caplog, sp_settings):
|
||||||
|
|
||||||
@pytest.mark.urls('urls_tests_template_base')
|
@pytest.mark.urls('urls_tests_template_base')
|
||||||
def test_template_base(db, app, idp, caplog, sp_settings):
|
def test_template_base(db, app, idp, caplog, sp_settings):
|
||||||
|
response = app.get(reverse('mellon_metadata'))
|
||||||
response = app.get(reverse('mellon_login'))
|
response = app.get(reverse('mellon_login'))
|
||||||
url, body, relay_state = idp.process_authn_request_redirect(
|
url, body, relay_state = idp.process_authn_request_redirect(
|
||||||
response['Location'],
|
response['Location'],
|
||||||
|
@ -232,9 +235,16 @@ def test_template_base(db, app, idp, caplog, sp_settings):
|
||||||
response = app.post(reverse('mellon_login'), params={'SAMLResponse': body, 'RelayState': relay_state})
|
response = app.post(reverse('mellon_login'), params={'SAMLResponse': body, 'RelayState': relay_state})
|
||||||
assert 'Theme is ok' in response.text
|
assert 'Theme is ok' in response.text
|
||||||
|
|
||||||
|
response = app.get(reverse('mellon_login'))
|
||||||
|
url, body, relay_state = idp.process_authn_request_redirect(response['Location'])
|
||||||
|
response = app.post(reverse('mellon_login'), params={'SAMLResponse': body, 'RelayState': relay_state})
|
||||||
|
response = app.get(reverse('mellon_logout'))
|
||||||
|
assert urlparse.urlparse(response['Location']).path == '/singleLogout'
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.urls('urls_tests_template_hook')
|
@pytest.mark.urls('urls_tests_template_hook')
|
||||||
def test_template_hook(db, app, idp, caplog, sp_settings):
|
def test_template_hook(db, app, idp, caplog, sp_settings):
|
||||||
|
response = app.get(reverse('mellon_metadata'))
|
||||||
response = app.get(reverse('mellon_login'))
|
response = app.get(reverse('mellon_login'))
|
||||||
url, body, relay_state = idp.process_authn_request_redirect(
|
url, body, relay_state = idp.process_authn_request_redirect(
|
||||||
response['Location'],
|
response['Location'],
|
||||||
|
@ -244,6 +254,12 @@ def test_template_hook(db, app, idp, caplog, sp_settings):
|
||||||
assert 'Theme is ok' in response.text
|
assert 'Theme is ok' in response.text
|
||||||
assert 'HOOK' in response.text
|
assert 'HOOK' in response.text
|
||||||
|
|
||||||
|
response = app.get(reverse('mellon_login'))
|
||||||
|
url, body, relay_state = idp.process_authn_request_redirect(response['Location'])
|
||||||
|
response = app.post(reverse('mellon_login'), params={'SAMLResponse': body, 'RelayState': relay_state})
|
||||||
|
response = app.get(reverse('mellon_logout'))
|
||||||
|
assert urlparse.urlparse(response['Location']).path == '/singleLogout'
|
||||||
|
|
||||||
|
|
||||||
def test_no_template_base(db, app, idp, caplog, sp_settings):
|
def test_no_template_base(db, app, idp, caplog, sp_settings):
|
||||||
response = app.get(reverse('mellon_login'))
|
response = app.get(reverse('mellon_login'))
|
||||||
|
|
Loading…
Reference in New Issue