Projet

Général

Profil

0001-auth_fc-add-tests-about-redondant-email-returned-by-.patch

Nicolas Roche, 08 avril 2021 18:04

Télécharger (2,92 ko)

Voir les différences:

Subject: [PATCH] auth_fc: add tests about redondant email returned by FC
 (#45199)

 tests/auth_fc/test_auth_fc.py | 48 +++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
tests/auth_fc/test_auth_fc.py
342 342
    del franceconnect.user_info['email']
343 343
    response = app.get('/login/?service=portail&next=/idp/')
344 344
    response = response.click(href='callback')
345 345

  
346 346
    response = franceconnect.handle_authorization(app, response.location, status=302)
347 347
    assert User.objects.count() == 1
348 348

  
349 349
    response = app.get('/accounts/', status=200)
350

  
351

  
352
def test_update_fc_email(settings, app, franceconnect):
353
    settings.A2_EMAIL_IS_UNIQUE = True
354

  
355
    user1 = User(email='john.doe@example.com', first_name='John', last_name='Doe')
356
    user1.save()
357
    models.FcAccount.objects.create(user=user1, sub='1234')
358

  
359
    user2 = User(email='joe@example.com', first_name='Joe', last_name='Dalton')
360
    user2.save()
361
    models.FcAccount.objects.create(user=user2, sub='4567')
362

  
363
    # user1 FC email has changed
364
    assert franceconnect.sub == '1234'
365
    assert franceconnect.user_info['given_name'] == 'Ÿuñe'
366
    franceconnect.user_info['email'] = 'jhonny@example.com'
367

  
368
    # connection using FC sub 1234 will affect user1 (as expected)
369
    franceconnect.login_with_fc_fixed_params(app)
370
    assert User.objects.get(pk=user1.pk).email == 'jhonny@example.com'
371
    assert User.objects.get(pk=user1.pk).first_name == 'Ÿuñe'
372
    assert User.objects.get(pk=user2.pk).email == 'joe@example.com'
373
    assert app.session['_auth_user_id'] == str(user1.pk)
374

  
375

  
376
def test_update_fc_redondant_email(settings, app, franceconnect):
377
    settings.A2_EMAIL_IS_UNIQUE = True
378

  
379
    user1 = User(email='john.doe@example.com', first_name='John', last_name='Doe')
380
    user1.save()
381
    models.FcAccount.objects.create(user=user1, sub='1234')
382

  
383
    user2 = User(email='joe@example.com', first_name='Joe', last_name='Dalton')
384
    user2.save()
385
    models.FcAccount.objects.create(user=user2, sub='4567')
386

  
387
    # user1 FC email has changed and provide user2 email
388
    assert franceconnect.sub == '1234'
389
    assert franceconnect.user_info['given_name'] == 'Ÿuñe'
390
    franceconnect.user_info['email'] = 'joe@example.com'
391

  
392
    # connection using FC sub 1234 will affect user2
393
    franceconnect.login_with_fc_fixed_params(app)
394
    assert User.objects.get(pk=user1.pk).email == 'john.doe@example.com'
395
    assert User.objects.get(pk=user2.pk).email == 'joe@example.com'
396
    assert User.objects.get(pk=user2.pk).first_name == 'Ÿuñe'
397
    assert not (app.session.get('_auth_user_id'))
350
-