test: auth_fc updates the user email with FC info (#45199)

This commit is contained in:
Nicolas Roche 2021-05-14 17:34:48 +02:00
parent 4f8f5f6221
commit f148399793
1 changed files with 40 additions and 0 deletions

View File

@ -574,3 +574,43 @@ def test_same_email_different_sub(app, franceconnect):
# email collision, sub is different, no new user created
assert User.objects.count() == 1
assert 'another email address' in resp
def test_update_fc_email(settings, app, franceconnect):
settings.A2_EMAIL_IS_UNIQUE = True
user = User(email='john.doe@example.com', first_name='John', last_name='Doe')
user.save()
models.FcAccount.objects.create(user=user, sub='1234')
# user1 FC email has changed
assert franceconnect.sub == '1234'
assert franceconnect.user_info['given_name'] == 'Ÿuñe'
franceconnect.user_info['email'] = 'jhonny@example.com'
# connection using FC sub 1234 will update user1 email
franceconnect.login_with_fc_fixed_params(app)
assert User.objects.get(pk=user.pk).email == 'jhonny@example.com'
assert User.objects.get(pk=user.pk).first_name == 'Ÿuñe'
assert app.session['_auth_user_id'] == str(user.pk)
def test_update_fc_redondant_email(settings, app, franceconnect):
settings.A2_EMAIL_IS_UNIQUE = True
user1 = User(email='john.doe@example.com', first_name='John', last_name='Doe')
user1.save()
models.FcAccount.objects.create(user=user1, sub='1234')
user2 = User(email='joe@example.com', first_name='Joe', last_name='Dalton')
user2.save()
models.FcAccount.objects.create(user=user2, sub='4567')
# user1 FC email has changed and provide user2 email
assert franceconnect.sub == '1234'
assert franceconnect.user_info['given_name'] == 'Ÿuñe'
franceconnect.user_info['email'] = 'joe@example.com'
# connection using FC sub 1234 will introduce a redondant mail
franceconnect.login_with_fc_fixed_params(app)
assert User.objects.get(pk=user1.pk).email == 'joe@example.com'
assert User.objects.get(pk=user1.pk).first_name == 'Ÿuñe'
assert User.objects.get(pk=user2.pk).email == 'joe@example.com'
assert app.session['_auth_user_id'] == str(user1.pk)