test: auth_fc updates the user email with FC info (#45199)
This commit is contained in:
parent
4f8f5f6221
commit
f148399793
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue