Projet

Général

Profil

0001-test-auth_fc-updates-the-user-email-with-FC-info-451.patch

Nicolas Roche, 14 mai 2021 18:20

Télécharger (2,62 ko)

Voir les différences:

Subject: [PATCH 1/2] test: auth_fc updates the user email with FC info
 (#45199)

 tests/auth_fc/test_auth_fc.py | 40 +++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
tests/auth_fc/test_auth_fc.py
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
-