From 7123a4767cf50610c7a63bb6ecde96450b05f9da Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Mon, 26 Oct 2020 20:16:47 +0100 Subject: [PATCH 2/4] auth_fc: add tests on login with minimal user_info (#47566) --- tests/auth_fc/test_auth_fc.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/auth_fc/test_auth_fc.py b/tests/auth_fc/test_auth_fc.py index da539b3f..3858d5cb 100644 --- a/tests/auth_fc/test_auth_fc.py +++ b/tests/auth_fc/test_auth_fc.py @@ -352,3 +352,28 @@ def test_manager_user_sidebar(app, superuser, simple_user): response = app.get('/manage/users/%s/' % simple_user.id) assert 'FranceConnect' in response + + +def test_user_info_incomplete(settings, app, franceconnect): + settings.A2_FC_CREATE = True + franceconnect.user_info = {} + franceconnect.login_with_fc_fixed_params(app) + + user = User.objects.get() + assert app.session['_auth_user_id'] == str(user.pk) + fc_account = models.FcAccount.objects.get(user=user) + assert fc_account.sub == franceconnect.sub + assert fc_account.get_user_info() == {'sub': franceconnect.sub} + + +def test_user_info_incomplete_already_linked(settings, app, franceconnect, simple_user): + settings.A2_FC_CREATE = True + user = User.objects.create() + models.FcAccount.objects.create(user=user, sub=franceconnect.sub) + franceconnect.user_info = {} + franceconnect.callback_params = {'next': '/accounts/'} + + response = login(app, simple_user, path='/accounts/') + response = response.click(href='callback') + response = franceconnect.handle_authorization(app, response.location, status=302) + assert 'FranceConnect account is already' in app.cookies['messages'] -- 2.28.0