569 |
569 |
# change sub
|
570 |
570 |
franceconnect.sub = '4567'
|
571 |
571 |
|
572 |
572 |
resp = franceconnect.login_with_fc_fixed_params(app).maybe_follow()
|
573 |
573 |
|
574 |
574 |
# email collision, sub is different, no new user created
|
575 |
575 |
assert User.objects.count() == 1
|
576 |
576 |
assert 'another email address' in resp
|
|
577 |
|
|
578 |
|
|
579 |
def test_update_fc_email(settings, app, franceconnect):
|
|
580 |
settings.A2_EMAIL_IS_UNIQUE = True
|
|
581 |
user = User(email='john.doe@example.com', first_name='John', last_name='Doe')
|
|
582 |
user.save()
|
|
583 |
models.FcAccount.objects.create(user=user, sub='1234')
|
|
584 |
|
|
585 |
# user1 FC email has changed
|
|
586 |
assert franceconnect.sub == '1234'
|
|
587 |
assert franceconnect.user_info['given_name'] == 'Ÿuñe'
|
|
588 |
franceconnect.user_info['email'] = 'jhonny@example.com'
|
|
589 |
|
|
590 |
# connection using FC sub 1234 will update user1 email
|
|
591 |
franceconnect.login_with_fc_fixed_params(app)
|
|
592 |
assert User.objects.get(pk=user.pk).email == 'jhonny@example.com'
|
|
593 |
assert User.objects.get(pk=user.pk).first_name == 'Ÿuñe'
|
|
594 |
assert app.session['_auth_user_id'] == str(user.pk)
|
|
595 |
|
|
596 |
|
|
597 |
def test_update_fc_redondant_email(settings, app, franceconnect):
|
|
598 |
settings.A2_EMAIL_IS_UNIQUE = True
|
|
599 |
user1 = User(email='john.doe@example.com', first_name='John', last_name='Doe')
|
|
600 |
user1.save()
|
|
601 |
models.FcAccount.objects.create(user=user1, sub='1234')
|
|
602 |
user2 = User(email='joe@example.com', first_name='Joe', last_name='Dalton')
|
|
603 |
user2.save()
|
|
604 |
models.FcAccount.objects.create(user=user2, sub='4567')
|
|
605 |
|
|
606 |
# user1 FC email has changed and provide user2 email
|
|
607 |
assert franceconnect.sub == '1234'
|
|
608 |
assert franceconnect.user_info['given_name'] == 'Ÿuñe'
|
|
609 |
franceconnect.user_info['email'] = 'joe@example.com'
|
|
610 |
|
|
611 |
# connection using FC sub 1234 will introduce a redondant mail
|
|
612 |
franceconnect.login_with_fc_fixed_params(app)
|
|
613 |
assert User.objects.get(pk=user1.pk).email == 'joe@example.com'
|
|
614 |
assert User.objects.get(pk=user1.pk).first_name == 'Ÿuñe'
|
|
615 |
assert User.objects.get(pk=user2.pk).email == 'joe@example.com'
|
|
616 |
assert app.session['_auth_user_id'] == str(user1.pk)
|
577 |
|
-
|