Projet

Général

Profil

0001-tests-use-serialized_rollback-with-transactional-db-.patch

Valentin Deniaud, 19 avril 2022 18:14

Télécharger (4,44 ko)

Voir les différences:

Subject: [PATCH 1/4] tests: use serialized_rollback with transactional db when
 needed (#53902)

 tests/conftest.py          |  7 +++++++
 tests/settings.py          |  4 ++++
 tests/test_user_manager.py | 18 ++++++++++++------
 3 files changed, 23 insertions(+), 6 deletions(-)
tests/conftest.py
528 528
        required_on_login=True,
529 529
        user_visible=True,
530 530
    )
531

  
532

  
533
@pytest.fixture
534
def trigger_post_migrate():
535
    from django.core.management.sql import emit_post_migrate_signal
536

  
537
    emit_post_migrate_signal(verbosity=0, interactive=False, db='default', created_models=[])
tests/settings.py
64 64
A2_REDIRECT_WHITELIST = ['http://sp.org/']
65 65

  
66 66
TESTING = True
67

  
68
TEST_NON_SERIALIZED_APPS = [
69
    app for app in INSTALLED_APPS if 'authenticator' not in app  # pylint: disable=undefined-variable
70
]
tests/test_user_manager.py
446 446
    assert response.pyquery('td.username')
447 447

  
448 448

  
449
@pytest.mark.django_db(serialized_rollback=True, transaction=True)
449 450
@pytest.mark.parametrize('encoding', ['utf-8-sig', 'cp1252', 'iso-8859-15'])
450
def test_user_import(encoding, transactional_db, app, admin, ou1, admin_ou1):
451
def test_user_import(encoding, trigger_post_migrate, app, admin, ou1, admin_ou1):
451 452
    Attribute.objects.create(name='phone', kind='phone_number', label='Numéro de téléphone')
452 453

  
453 454
    deleted_user = User.objects.create(
......
582 583
    app.get('/manage/users/import/%s/%s/' % (_import.uuid, execute.uuid), status=403)
583 584

  
584 585

  
585
def test_user_import_legacy_encoding(transactional_db, app, admin, ou1, admin_ou1):
586
@pytest.mark.django_db(serialized_rollback=True, transaction=True)
587
def test_user_import_legacy_encoding(trigger_post_migrate, app, admin, ou1, admin_ou1):
586 588
    response = login(app, admin, '/manage/users/')
587 589
    response = response.click('Import users')
588 590
    response.form.set(
......
673 675
    return response
674 676

  
675 677

  
676
def test_user_import_attributes(transactional_db, app, admin):
678
@pytest.mark.django_db(serialized_rollback=True, transaction=True)
679
def test_user_import_attributes(trigger_post_migrate, app, admin):
677 680
    Attribute.objects.create(name='more', kind='string', label='Signe particulier')
678 681
    Attribute.objects.create(name='title', kind='title', label='Titre')
679 682
    Attribute.objects.create(name='bike', kind='boolean', label='Vélo')
......
745 748
    assert len(response.pyquery('table.main tbody tr')) == 1
746 749

  
747 750

  
748
def test_user_import_row_error_display(transactional_db, app, admin):
751
@pytest.mark.django_db(serialized_rollback=True, transaction=True)
752
def test_user_import_row_error_display(trigger_post_migrate, app, admin):
749 753
    User.objects.create(first_name='Elliott', last_name='1', ou=get_default_ou())
750 754
    User.objects.create(first_name='Elliott', last_name='2', ou=get_default_ou())
751 755
    content = '''first_name key,last_name
......
758 762
    assert 'matches too many user' in response.pyquery('tr.row-errors').text()
759 763

  
760 764

  
761
def test_user_import_missing_roles_recap(transactional_db, app, admin):
765
@pytest.mark.django_db(serialized_rollback=True, transaction=True)
766
def test_user_import_missing_roles_recap(trigger_post_migrate, app, admin):
762 767
    content = '''first_name key,last_name,_role_name
763 768
Elliott,Doe,test1
764 769
Jane,Doe,test1
......
800 805
    assert urlparse(response.location).path == next_url.replace('$UUID', str(user.uuid))
801 806

  
802 807

  
803
def test_user_import_execute_from_simutation(transactional_db, app, admin):
808
@pytest.mark.django_db(serialized_rollback=True, transaction=True)
809
def test_user_import_execute_from_simutation(app, trigger_post_migrate, admin):
804 810
    csv_content = '''first_name key,last_name
805 811
Elliott,3'''
806 812
    response = login(app, admin, '/manage/users/')
807
-