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 == 'joe@example.com'
|
|
395 |
assert User.objects.get(pk=user1.pk).first_name == 'Ÿuñe'
|
|
396 |
assert User.objects.get(pk=user2.pk).email == 'joe@example.com'
|
|
397 |
assert app.session.get('_auth_user_id')
|
350 |
|
-
|