tests: clear caplog between sessions (#41949)

This commit is contained in:
Benjamin Dauvergne 2020-05-27 13:10:10 +02:00
parent 3c696c60a2
commit e1deb96f8c
2 changed files with 12 additions and 11 deletions

View File

@ -38,8 +38,6 @@ from mellon.views import lasso_decode
from httmock import all_requests, HTTMock, response as mock_response
from utils import reset_caplog
@fixture
def idp_metadata():
@ -299,6 +297,7 @@ def test_sso_idp_slo_soap(db, app, idp, caplog, sp_settings):
idp.reset_session_dump()
# second session
caplog.clear()
app.cookiejar.clear()
response = app.get(reverse('mellon_login') + '?next=/whatever/')
url, body, relay_state = idp.process_authn_request_redirect(response['Location'])
@ -306,7 +305,7 @@ def test_sso_idp_slo_soap(db, app, idp, caplog, sp_settings):
assert 'eo:next_url' not in str(idp.request)
assert url.endswith(reverse('mellon_login'))
response = app.post(reverse('mellon_login'), params={'SAMLResponse': body, 'RelayState': relay_state})
assert 'created new user' in caplog.text
assert 'looked up user' in caplog.text
assert 'logged in using SAML' in caplog.text
assert urlparse.urlparse(response['Location']).path == '/whatever/'
@ -338,6 +337,7 @@ def test_sso_idp_slo_full(db, app, idp, caplog, sp_settings):
assert urlparse.urlparse(response['Location']).path == '/whatever/'
# second session
caplog.clear()
app.cookiejar.clear()
response = app.get(reverse('mellon_login') + '?next=/whatever/')
url, body, relay_state = idp.process_authn_request_redirect(response['Location'])
@ -345,7 +345,7 @@ def test_sso_idp_slo_full(db, app, idp, caplog, sp_settings):
assert 'eo:next_url' not in str(idp.request)
assert url.endswith(reverse('mellon_login'))
response = app.post(reverse('mellon_login'), params={'SAMLResponse': body, 'RelayState': relay_state})
assert 'created new user' in caplog.text
assert 'looked up user' in caplog.text
assert 'logged in using SAML' in caplog.text
assert urlparse.urlparse(response['Location']).path == '/whatever/'
@ -376,6 +376,7 @@ def test_sso_idp_slo_full_soap(db, app, idp, caplog, sp_settings):
assert urlparse.urlparse(response['Location']).path == '/whatever/'
# second session
caplog.clear()
app.cookiejar.clear()
response = app.get(reverse('mellon_login') + '?next=/whatever/')
url, body, relay_state = idp.process_authn_request_redirect(response['Location'])
@ -383,7 +384,7 @@ def test_sso_idp_slo_full_soap(db, app, idp, caplog, sp_settings):
assert 'eo:next_url' not in str(idp.request)
assert url.endswith(reverse('mellon_login'))
response = app.post(reverse('mellon_login'), params={'SAMLResponse': body, 'RelayState': relay_state})
assert 'created new user' in caplog.text
assert 'looked up user' in caplog.text
assert 'logged in using SAML' in caplog.text
assert urlparse.urlparse(response['Location']).path == '/whatever/'
@ -519,6 +520,8 @@ def test_sso_artifact(db, app, caplog, sp_settings, idp_metadata, idp_private_ke
assert app.session
del app.session['_auth_user_id']
assert 'dead artifact' not in caplog.text
caplog.clear()
with HTTMock(idp.mock_artifact_resolver()):
response = app.get(acs_artifact_url, params={'RelayState': relay_state})
# verify retry login was asked
@ -527,13 +530,16 @@ def test_sso_artifact(db, app, caplog, sp_settings, idp_metadata, idp_private_ke
response = response.follow()
url, body, relay_state = idp.process_authn_request_redirect(response['Location'])
assert relay_state
reset_caplog(caplog)
# verify caplog has been cleaned
caplog.clear()
assert 'created new user' not in caplog.text
assert body is None
assert reverse('mellon_login') in url
assert 'SAMLart' in url
acs_artifact_url = url.split('testserver', 1)[1]
caplog.clear()
with HTTMock(idp.mock_artifact_resolver()):
response = app.get(acs_artifact_url, params={'RelayState': relay_state})
assert 'created new user' not in caplog.text

View File

@ -29,8 +29,3 @@ def html_response(url, request):
@all_requests
def metadata_response(url, request):
return response(200, content=open('tests/metadata.xml').read())
def reset_caplog(cap):
cap.handler.stream.truncate(0)
cap.handler.records = []