Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(PC-31051)[BO] feat: add ff WIP_DISABLE_NOTIFICATION_CANCEL_BOOKING_C… #14210

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

(PC-31051)[BO] feat: add ff WIP_DISABLE_NOTIFICATION_CANCEL_BOOKING

92572e9
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Draft

(PC-31051)[BO] feat: add ff WIP_DISABLE_NOTIFICATION_CANCEL_BOOKING_C… #14210

(PC-31051)[BO] feat: add ff WIP_DISABLE_NOTIFICATION_CANCEL_BOOKING
92572e9
Select commit
Loading
Failed to load commit list.
GitHub Actions / Pytest Report failed Oct 1, 2024 in 0s

2561 tests run, 2522 passed, 1 skipped, 38 failed.

Annotations

Check failure on line 44 in tests/routes/pro/delete_stock_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/delete_stock_test.py.when_current_user_has_rights_on_offer_with_disabled_notification_cancel_booking

AssertionError: assert not True
 +  where True = <MagicMock name='delay' id='140002064196048'>.called
Raw output
tests/routes/pro/delete_stock_test.py:67: in when_current_user_has_rights_on_offer_with_disabled_notification_cancel_booking
    assert not mocked_cancel_booking_notification.called
E   AssertionError: assert not True
E    +  where True = <MagicMock name='delay' id='140002064196048'>.called

Check failure on line 65 in tests/routes/pro/delete_stocks_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/delete_stocks_test.py.test_delete_unaccessible_stocks

assert False
 +  where False = all(<generator object Returns204Test.test_delete_unaccessible_stocks.<locals>.<genexpr> at 0x7f54cc0de8e0>)
Raw output
tests/routes/pro/delete_stocks_test.py:83: in test_delete_unaccessible_stocks
    assert all(not stock.isSoftDeleted for stock in offer_models.Stock.query.all())
E   assert False
E    +  where False = all(<generator object Returns204Test.test_delete_unaccessible_stocks.<locals>.<genexpr> at 0x7f54cc0de8e0>)

Check failure on line 15 in tests/routes/pro/get_offerer_addresses_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_offerer_addresses_test.py.test_get_offerer_addresses_success

AssertionError: assert [{'id': 690, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 691, 'label': '2eme adresse', 'street': '20 Avenue de Ségur', 'postalCode': '75007', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 692, 'label': '3eme adresse', 'street': None, 'postalCode': '75008', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 690, 'isLinkedToVenue': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}, {'city': 'Paris', 'departmentCode': '75', 'id': 691, 'isLinkedToVenue': False, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur'}, {'city': 'Paris', 'departmentCode': '75', 'id': 692, 'isLinkedToVenue': False, 'label': '3eme adresse', 'postalCode': '75008', 'street': None}]
  
  At index 0 diff: {'id': 690, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 690, 'isLinkedToVenue': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}
  
  Full diff:
    [
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 690,
            'isLinkedToVenue': False,
            'label': '1ere adresse',
  -         'postalCode': '75002',
  ?                            ^
  +         'postalCode': '75000',
  ?                            ^
            'street': '1 boulevard Poissonnière',
        },
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 691,
            'isLinkedToVenue': False,
            'label': '2eme adresse',
            'postalCode': '75007',
            'street': '20 Avenue de Ségur',
        },
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 692,
            'isLinkedToVenue': False,
            'label': '3eme adresse',
            'postalCode': '75008',
            'street': None,
        },
    ]
Raw output
tests/routes/pro/get_offerer_addresses_test.py:56: in test_get_offerer_addresses_success
    assert response.json == [
E   AssertionError: assert [{'id': 690, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 691, 'label': '2eme adresse', 'street': '20 Avenue de Ségur', 'postalCode': '75007', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 692, 'label': '3eme adresse', 'street': None, 'postalCode': '75008', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 690, 'isLinkedToVenue': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}, {'city': 'Paris', 'departmentCode': '75', 'id': 691, 'isLinkedToVenue': False, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur'}, {'city': 'Paris', 'departmentCode': '75', 'id': 692, 'isLinkedToVenue': False, 'label': '3eme adresse', 'postalCode': '75008', 'street': None}]
E     
E     At index 0 diff: {'id': 690, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 690, 'isLinkedToVenue': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}
E     
E     Full diff:
E       [
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 690,
E               'isLinkedToVenue': False,
E               'label': '1ere adresse',
E     -         'postalCode': '75002',
E     ?                            ^
E     +         'postalCode': '75000',
E     ?                            ^
E               'street': '1 boulevard Poissonnière',
E           },
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 691,
E               'isLinkedToVenue': False,
E               'label': '2eme adresse',
E               'postalCode': '75007',
E               'street': '20 Avenue de Ségur',
E           },
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 692,
E               'isLinkedToVenue': False,
E               'label': '3eme adresse',
E               'postalCode': '75008',
E               'street': None,
E           },
E       ]

Check failure on line 85 in tests/routes/pro/get_offerer_addresses_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_offerer_addresses_test.py.test_get_offerer_addresses_with_offers

AssertionError: assert [{'id': 694, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': True, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 694, 'isLinkedToVenue': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}]
  
  At index 0 diff: {'id': 694, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': True, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 694, 'isLinkedToVenue': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}
  
  Full diff:
    [
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 694,
            'isLinkedToVenue': True,
            'label': '1ere adresse',
  -         'postalCode': '75002',
  ?                            ^
  +         'postalCode': '75000',
  ?                            ^
            'street': '1 boulevard Poissonnière',
        },
    ]
Raw output
tests/routes/pro/get_offerer_addresses_test.py:116: in test_get_offerer_addresses_with_offers
    assert response.json == [
E   AssertionError: assert [{'id': 694, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': True, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 694, 'isLinkedToVenue': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}]
E     
E     At index 0 diff: {'id': 694, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': True, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 694, 'isLinkedToVenue': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}
E     
E     Full diff:
E       [
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 694,
E               'isLinkedToVenue': True,
E               'label': '1ere adresse',
E     -         'postalCode': '75002',
E     ?                            ^
E     +         'postalCode': '75000',
E     ?                            ^
E               'street': '1 boulevard Poissonnière',
E           },
E       ]

Check failure on line 133 in tests/routes/pro/get_offerer_addresses_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_offerer_addresses_test.py.test_get_offerer_addresses_is_editable[True]

AssertionError: assert [{'id': 696, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': True, 'departmentCode': '75'}, {'id': 697, 'label': '2eme adresse', 'street': '20 Avenue de Ségur', 'postalCode': '75007', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 698, 'label': '3eme adresse', 'street': '1 rue de la Paix', 'postalCode': '75008', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 696, 'isLinkedToVenue': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}, {'city': 'Paris', 'departmentCode': '75', 'id': 697, 'isLinkedToVenue': False, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur'}, {'city': 'Paris', 'departmentCode': '75', 'id': 698, 'isLinkedToVenue': False, 'label': '3eme adresse', 'postalCode': '75008', 'street': '1 rue de la Paix'}]
  
  At index 0 diff: {'id': 696, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': True, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 696, 'isLinkedToVenue': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}
  
  Full diff:
    [
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 696,
            'isLinkedToVenue': True,
            'label': '1ere adresse',
  -         'postalCode': '75002',
  ?                            ^
  +         'postalCode': '75000',
  ?                            ^
            'street': '1 boulevard Poissonnière',
        },
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 697,
            'isLinkedToVenue': False,
            'label': '2eme adresse',
            'postalCode': '75007',
            'street': '20 Avenue de Ségur',
        },
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 698,
            'isLinkedToVenue': False,
            'label': '3eme adresse',
            'postalCode': '75008',
            'street': '1 rue de la Paix',
        },
    ]
Raw output
tests/routes/pro/get_offerer_addresses_test.py:173: in test_get_offerer_addresses_is_editable
    assert response.json == [
E   AssertionError: assert [{'id': 696, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': True, 'departmentCode': '75'}, {'id': 697, 'label': '2eme adresse', 'street': '20 Avenue de Ségur', 'postalCode': '75007', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 698, 'label': '3eme adresse', 'street': '1 rue de la Paix', 'postalCode': '75008', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 696, 'isLinkedToVenue': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}, {'city': 'Paris', 'departmentCode': '75', 'id': 697, 'isLinkedToVenue': False, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur'}, {'city': 'Paris', 'departmentCode': '75', 'id': 698, 'isLinkedToVenue': False, 'label': '3eme adresse', 'postalCode': '75008', 'street': '1 rue de la Paix'}]
E     
E     At index 0 diff: {'id': 696, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': True, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 696, 'isLinkedToVenue': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}
E     
E     Full diff:
E       [
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 696,
E               'isLinkedToVenue': True,
E               'label': '1ere adresse',
E     -         'postalCode': '75002',
E     ?                            ^
E     +         'postalCode': '75000',
E     ?                            ^
E               'street': '1 boulevard Poissonnière',
E           },
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 697,
E               'isLinkedToVenue': False,
E               'label': '2eme adresse',
E               'postalCode': '75007',
E               'street': '20 Avenue de Ségur',
E           },
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 698,
E               'isLinkedToVenue': False,
E               'label': '3eme adresse',
E               'postalCode': '75008',
E               'street': '1 rue de la Paix',
E           },
E       ]

Check failure on line 133 in tests/routes/pro/get_offerer_addresses_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_offerer_addresses_test.py.test_get_offerer_addresses_is_editable[False]

AssertionError: assert [{'id': 699, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 700, 'label': '2eme adresse', 'street': '20 Avenue de Ségur', 'postalCode': '75007', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 701, 'label': '3eme adresse', 'street': '1 rue de la Paix', 'postalCode': '75008', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 699, 'isLinkedToVenue': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}, {'city': 'Paris', 'departmentCode': '75', 'id': 700, 'isLinkedToVenue': False, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur'}, {'city': 'Paris', 'departmentCode': '75', 'id': 701, 'isLinkedToVenue': False, 'label': '3eme adresse', 'postalCode': '75008', 'street': '1 rue de la Paix'}]
  
  At index 0 diff: {'id': 699, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 699, 'isLinkedToVenue': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}
  
  Full diff:
    [
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 699,
            'isLinkedToVenue': False,
            'label': '1ere adresse',
  -         'postalCode': '75002',
  ?                            ^
  +         'postalCode': '75000',
  ?                            ^
            'street': '1 boulevard Poissonnière',
        },
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 700,
            'isLinkedToVenue': False,
            'label': '2eme adresse',
            'postalCode': '75007',
            'street': '20 Avenue de Ségur',
        },
        {
            'city': 'Paris',
            'departmentCode': '75',
            'id': 701,
            'isLinkedToVenue': False,
            'label': '3eme adresse',
            'postalCode': '75008',
            'street': '1 rue de la Paix',
        },
    ]
Raw output
tests/routes/pro/get_offerer_addresses_test.py:173: in test_get_offerer_addresses_is_editable
    assert response.json == [
E   AssertionError: assert [{'id': 699, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 700, 'label': '2eme adresse', 'street': '20 Avenue de Ségur', 'postalCode': '75007', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}, {'id': 701, 'label': '3eme adresse', 'street': '1 rue de la Paix', 'postalCode': '75008', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 699, 'isLinkedToVenue': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}, {'city': 'Paris', 'departmentCode': '75', 'id': 700, 'isLinkedToVenue': False, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur'}, {'city': 'Paris', 'departmentCode': '75', 'id': 701, 'isLinkedToVenue': False, 'label': '3eme adresse', 'postalCode': '75008', 'street': '1 rue de la Paix'}]
E     
E     At index 0 diff: {'id': 699, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isLinkedToVenue': False, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 699, 'isLinkedToVenue': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}
E     
E     Full diff:
E       [
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 699,
E               'isLinkedToVenue': False,
E               'label': '1ere adresse',
E     -         'postalCode': '75002',
E     ?                            ^
E     +         'postalCode': '75000',
E     ?                            ^
E               'street': '1 boulevard Poissonnière',
E           },
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 700,
E               'isLinkedToVenue': False,
E               'label': '2eme adresse',
E               'postalCode': '75007',
E               'street': '20 Avenue de Ségur',
E           },
E           {
E               'city': 'Paris',
E               'departmentCode': '75',
E               'id': 701,
E               'isLinkedToVenue': False,
E               'label': '3eme adresse',
E               'postalCode': '75008',
E               'street': '1 rue de la Paix',
E           },
E       ]

Check failure on line 154 in tests/routes/pro/get_offerers_names_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_offerers_names_test.py.test_get_all_offerers_names

AssertionError: assert 5 == 4
 +  where 5 = len([{'allowedOnAdage': True, 'id': 529, 'name': 'Le Petit Rintintin Management 528'}, {'allowedOnAdage': True, 'id': 827, 'name': 'Le Petit Rintintin Management 826'}, {'allowedOnAdage': True, 'id': 828, 'name': 'Le Petit Rintintin Management 827'}, {'allowedOnAdage': True, 'id': 829, 'name': 'Le Petit Rintintin Management 828'}, {'allowedOnAdage': True, 'id': 830, 'name': 'Le Petit Rintintin Management 829'}])
Raw output
tests/routes/pro/get_offerers_names_test.py:168: in test_get_all_offerers_names
    assert len(response.json["offerersNames"]) == 4
E   AssertionError: assert 5 == 4
E    +  where 5 = len([{'allowedOnAdage': True, 'id': 529, 'name': 'Le Petit Rintintin Management 528'}, {'allowedOnAdage': True, 'id': 827, 'name': 'Le Petit Rintintin Management 826'}, {'allowedOnAdage': True, 'id': 828, 'name': 'Le Petit Rintintin Management 827'}, {'allowedOnAdage': True, 'id': 829, 'name': 'Le Petit Rintintin Management 828'}, {'allowedOnAdage': True, 'id': 830, 'name': 'Le Petit Rintintin Management 829'}])

Check failure on line 175 in tests/routes/pro/get_offerers_names_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_offerers_names_test.py.test_get_all_validated_offerers

AssertionError: assert 3 == 2
 +  where 3 = len([{'allowedOnAdage': True, 'id': 529, 'name': 'Le Petit Rintintin Management 528'}, {'allowedOnAdage': True, 'id': 831, 'name': 'Le Petit Rintintin Management 830'}, {'allowedOnAdage': True, 'id': 833, 'name': 'Le Petit Rintintin Management 832'}])
Raw output
tests/routes/pro/get_offerers_names_test.py:189: in test_get_all_validated_offerers
    assert len(response.json["offerersNames"]) == 2
E   AssertionError: assert 3 == 2
E    +  where 3 = len([{'allowedOnAdage': True, 'id': 529, 'name': 'Le Petit Rintintin Management 528'}, {'allowedOnAdage': True, 'id': 831, 'name': 'Le Petit Rintintin Management 830'}, {'allowedOnAdage': True, 'id': 833, 'name': 'Le Petit Rintintin Management 832'}])

Check failure on line 21 in tests/routes/pro/get_offers_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_offers_test.py.should_filter_by_venue_when_user_is_admin_and_request_specific_venue_with_no_rights_on_it

AssertionError: assert [{'hasBookingLimitDatetimesPassed': False, 'id': 294, 'isActive': True, 'isEditable': True, 'isEvent': False, 'isThing': True, 'isEducational': False, 'name': 'My Offer', 'stocks': [{'id': 238, 'hasBookingLimitDatetimePassed': False, 'remainingQuantity': 1000, 'beginningDatetime': None, 'bookingQuantity': 0}], 'thumbUrl': None, 'productIsbn': '123456789', 'subcategoryId': 'SUPPORT_PHYSIQUE_FILM', 'venue': {'id': 797, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name', 'departementCode': '12'}, 'status': 'ACTIVE', 'isShowcase': False, 'address': {'id': 289, 'banId': '75102_7560_00001', 'inseeCode': '75102', 'postalCode': '75000', 'street': '1 boulevard Poissonnière', 'city': 'Paris', 'latitude': 48.87004, 'longitude': 2.3785, 'departmentCode': '75', 'label': 'My public name', 'id_oa': 729, 'isLinkedToVenue': True, 'isManualEdition': False}}] == [{'hasBookingLimitDatetimesPassed': False, 'id': 294, 'isActive': True, 'isEditable': True, 'isEvent': False, 'isThing': True, 'isEducational': False, 'productIsbn': '123456789', 'name': 'My Offer', 'status': 'ACTIVE', 'stocks': [{'hasBookingLimitDatetimePassed': False, 'id': 238, 'remainingQuantity': 1000, 'beginningDatetime': None, 'bookingQuantity': 0}], 'thumbUrl': None, 'subcategoryId': 'SUPPORT_PHYSIQUE_FILM', 'venue': {'departementCode': '12', 'id': 797, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name'}, 'isShowcase': False, 'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': '75', 'id': 289, 'id_oa': 729, 'inseeCode': '75102', 'isLinkedToVenue': True, 'isManualEdition': False, 'label': 'My public name', 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '12000', 'street': '1 boulevard Poissonnière'}}]
  
  At index 0 diff: {'hasBookingLimitDatetimesPassed': False, 'id': 294, 'isActive': True, 'isEditable': True, 'isEvent': False, 'isThing': True, 'isEducational': False, 'name': 'My Offer', 'stocks': [{'id': 238, 'hasBookingLimitDatetimePassed': False, 'remainingQuantity': 1000, 'beginningDatetime': None, 'bookingQuantity': 0}], 'thumbUrl': None, 'productIsbn': '123456789', 'subcategoryId': 'SUPPORT_PHYSIQUE_FILM', 'venue': {'id': 797, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name', 'departementCode': '12'}, 'status': 'ACTIVE', 'isShowcase': False, 'address': {'id': 289, 'banId': '75102_7560_00001', 'inseeCode': '75102', 'postalCode': '75000', 'street': '1 boulevard Poissonnière', 'city': 'Paris', 'latitude': 48.87004, 'longitude': 2.3785, 'departmentCode': '75', 'label': 'My public name', 'id_oa': 729, 'isLinkedToVenue': True, 'isManualEdition': False}} != {'hasBookingLimitDatetimesPassed': False, 'id': 294, 'isActive': True, 'isEditable': True, 'isEvent': False, 'isThing': True, 'isEducational': False, 'productIsbn': '123456789', 'name': 'My Offer', 'status': 'ACTIVE', 'stocks': [{'hasBookingLimitDatetimePassed': False, 'id': 238, 'remainingQuantity': 1000, 'beginningDatetime': None, 'bookingQuantity': 0}], 'thumbUrl': None, 'subcategoryId': 'SUPPORT_PHYSIQUE_FILM', 'venue': {'departementCode': '12', 'id': 797, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name'}, 'isShowcase': False, 'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': '75', 'id': 289, 'id_oa': 729, 'inseeCode': '75102', 'isLinkedToVenue': True, 'isManualEdition': False, 'label': 'My public name', 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '12000', 'street': '1 boulevard Poissonnière'}}
  
  Full diff:
    [
        {
            'address': {
                'banId': '75102_7560_00001',
                'city': 'Paris',
                'departmentCode': '75',
                'id': 289,
                'id_oa': 729,
                'inseeCode': '75102',
                'isLinkedToVenue': True,
                'isManualEdition': False,
                'label': 'My public name',
                'latitude': 48.87004,
                'longitude': 2.3785,
  -             'postalCode': '12000',
  ?                            ^^
  +             'postalCode': '75000',
  ?                            ^^
                'street': '1 boulevard Poissonnière',
            },
            'hasBookingLimitDatetimesPassed': False,
            'id': 294,
            'isActive': True,
            'isEditable': True,
            'isEducational': False,
            'isEvent': False,
            'isShowcase': False,
            'isThing': True,
            'name': 'My Offer',
            'productIsbn': '123456789',
            'status': 'ACTIVE',
            'stocks': [
                {
                    'beginningDatetime': None,
                    'bookingQuantity': 0,
                    'hasBookingLimitDatetimePassed': False,
                    'id': 238,
                    'remainingQuantity': 1000,
                },
            ],
            'subcategoryId': 'SUPPORT_PHYSIQUE_FILM',
            'thumbUrl': None,
            'venue': {
                'departementCode': '12',
                'id': 797,
                'isVirtual': False,
                'name': 'My Venue',
                'offererName': 'My Offerer',
                'publicName': 'My public name',
            },
        },
    ]
Raw output
tests/routes/pro/get_offers_test.py:50: in should_filter_by_venue_when_user_is_admin_and_request_specific_venue_with_no_rights_on_it
    assert response.json == [
E   AssertionError: assert [{'hasBookingLimitDatetimesPassed': False, 'id': 294, 'isActive': True, 'isEditable': True, 'isEvent': False, 'isThing': True, 'isEducational': False, 'name': 'My Offer', 'stocks': [{'id': 238, 'hasBookingLimitDatetimePassed': False, 'remainingQuantity': 1000, 'beginningDatetime': None, 'bookingQuantity': 0}], 'thumbUrl': None, 'productIsbn': '123456789', 'subcategoryId': 'SUPPORT_PHYSIQUE_FILM', 'venue': {'id': 797, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name', 'departementCode': '12'}, 'status': 'ACTIVE', 'isShowcase': False, 'address': {'id': 289, 'banId': '75102_7560_00001', 'inseeCode': '75102', 'postalCode': '75000', 'street': '1 boulevard Poissonnière', 'city': 'Paris', 'latitude': 48.87004, 'longitude': 2.3785, 'departmentCode': '75', 'label': 'My public name', 'id_oa': 729, 'isLinkedToVenue': True, 'isManualEdition': False}}] == [{'hasBookingLimitDatetimesPassed': False, 'id': 294, 'isActive': True, 'isEditable': True, 'isEvent': False, 'isThing': True, 'isEducational': False, 'productIsbn': '123456789', 'name': 'My Offer', 'status': 'ACTIVE', 'stocks': [{'hasBookingLimitDatetimePassed': False, 'id': 238, 'remainingQuantity': 1000, 'beginningDatetime': None, 'bookingQuantity': 0}], 'thumbUrl': None, 'subcategoryId': 'SUPPORT_PHYSIQUE_FILM', 'venue': {'departementCode': '12', 'id': 797, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name'}, 'isShowcase': False, 'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': '75', 'id': 289, 'id_oa': 729, 'inseeCode': '75102', 'isLinkedToVenue': True, 'isManualEdition': False, 'label': 'My public name', 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '12000', 'street': '1 boulevard Poissonnière'}}]
E     
E     At index 0 diff: {'hasBookingLimitDatetimesPassed': False, 'id': 294, 'isActive': True, 'isEditable': True, 'isEvent': False, 'isThing': True, 'isEducational': False, 'name': 'My Offer', 'stocks': [{'id': 238, 'hasBookingLimitDatetimePassed': False, 'remainingQuantity': 1000, 'beginningDatetime': None, 'bookingQuantity': 0}], 'thumbUrl': None, 'productIsbn': '123456789', 'subcategoryId': 'SUPPORT_PHYSIQUE_FILM', 'venue': {'id': 797, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name', 'departementCode': '12'}, 'status': 'ACTIVE', 'isShowcase': False, 'address': {'id': 289, 'banId': '75102_7560_00001', 'inseeCode': '75102', 'postalCode': '75000', 'street': '1 boulevard Poissonnière', 'city': 'Paris', 'latitude': 48.87004, 'longitude': 2.3785, 'departmentCode': '75', 'label': 'My public name', 'id_oa': 729, 'isLinkedToVenue': True, 'isManualEdition': False}} != {'hasBookingLimitDatetimesPassed': False, 'id': 294, 'isActive': True, 'isEditable': True, 'isEvent': False, 'isThing': True, 'isEducational': False, 'productIsbn': '123456789', 'name': 'My Offer', 'status': 'ACTIVE', 'stocks': [{'hasBookingLimitDatetimePassed': False, 'id': 238, 'remainingQuantity': 1000, 'beginningDatetime': None, 'bookingQuantity': 0}], 'thumbUrl': None, 'subcategoryId': 'SUPPORT_PHYSIQUE_FILM', 'venue': {'departementCode': '12', 'id': 797, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name'}, 'isShowcase': False, 'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': '75', 'id': 289, 'id_oa': 729, 'inseeCode': '75102', 'isLinkedToVenue': True, 'isManualEdition': False, 'label': 'My public name', 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '12000', 'street': '1 boulevard Poissonnière'}}
E     
E     Full diff:
E       [
E           {
E               'address': {
E                   'banId': '75102_7560_00001',
E                   'city': 'Paris',
E                   'departmentCode': '75',
E                   'id': 289,
E                   'id_oa': 729,
E                   'inseeCode': '75102',
E                   'isLinkedToVenue': True,
E                   'isManualEdition': False,
E                   'label': 'My public name',
E                   'latitude': 48.87004,
E                   'longitude': 2.3785,
E     -             'postalCode': '12000',
E     ?                            ^^
E     +             'postalCode': '75000',
E     ?                            ^^
E                   'street': '1 boulevard Poissonnière',
E               },
E               'hasBookingLimitDatetimesPassed': False,
E               'id': 294,
E               'isActive': True,
E               'isEditable': True,
E               'isEducational': False,
E               'isEvent': False,
E               'isShowcase': False,
E               'isThing': True,
E               'name': 'My Offer',
E               'productIsbn': '123456789',
E               'status': 'ACTIVE',
E               'stocks': [
E                   {
E                       'beginningDatetime': None,
E                       'bookingQuantity': 0,
E                       'hasBookingLimitDatetimePassed': False,
E                       'id': 238,
E                       'remainingQuantity': 1000,
E                   },
E               ],
E               'subcategoryId': 'SUPPORT_PHYSIQUE_FILM',
E               'thumbUrl': None,
E               'venue': {
E                   'departementCode': '12',
E                   'id': 797,
E                   'isVirtual': False,
E                   'name': 'My Venue',
E                   'offererName': 'My Offerer',
E                   'publicName': 'My public name',
E               },
E           },
E       ]

Check failure on line 493 in tests/routes/pro/get_reimbursements_csv_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_reimbursements_csv_test.py.test_with_offer_address_and_venue_address[True-2-1 rue de la paix 75002 Paris0]

assert 2 == 1
 +  where 2 = len([<Booking #117>, <Booking #67>])
Raw output
tests/routes/pro/get_reimbursements_csv_test.py:590: in test_with_offer_address_and_venue_address
    assert len(bookings) == 1
E   assert 2 == 1
E    +  where 2 = len([<Booking #117>, <Booking #67>])

Check failure on line 493 in tests/routes/pro/get_reimbursements_csv_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_reimbursements_csv_test.py.test_with_offer_address_and_venue_address[False-1-1 boulevard Poissonni\xe8re 75000 Paris]

assert 2 == 1
 +  where 2 = len([<Booking #118>, <Booking #67>])
Raw output
tests/routes/pro/get_reimbursements_csv_test.py:590: in test_with_offer_address_and_venue_address
    assert len(bookings) == 1
E   assert 2 == 1
E    +  where 2 = len([<Booking #118>, <Booking #67>])

Check failure on line 493 in tests/routes/pro/get_reimbursements_csv_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/get_reimbursements_csv_test.py.test_with_offer_address_and_venue_address[True-2-1 rue de la paix 75002 Paris1]

assert 2 == 1
 +  where 2 = len([<Booking #119>, <Booking #67>])
Raw output
tests/routes/pro/get_reimbursements_csv_test.py:590: in test_with_offer_address_and_venue_address
    assert len(bookings) == 1
E   assert 2 == 1
E    +  where 2 = len([<Booking #119>, <Booking #67>])

Check failure on line 38 in tests/routes/pro/patch_offerer_address_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/patch_offerer_address_test.py.test_user_cant_change_offerer_address_on_foreign_offerer

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Raw output
tests/routes/pro/patch_offerer_address_test.py:55: in test_user_cant_change_offerer_address_on_foreign_offerer
    offerer_address = offerers_models.OffererAddress.query.one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2870: in one
    return self._iter().one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:1522: in one
    return self._only_one_row(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:614: in _only_one_row
    raise exc.MultipleResultsFound(
E   sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Check failure on line 108 in tests/routes/pro/patch_offerer_address_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/patch_offerer_address_test.py.test_user_can_change_offerer_address_label

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Raw output
tests/routes/pro/patch_offerer_address_test.py:125: in test_user_can_change_offerer_address_label
    offerer_address = offerers_models.OffererAddress.query.one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2870: in one
    return self._iter().one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:1522: in one
    return self._only_one_row(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:614: in _only_one_row
    raise exc.MultipleResultsFound(
E   sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Check failure on line 110 in tests/routes/pro/patch_venue_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/patch_venue_test.py.test_update_venue_location_should_update_venue_offerer_address

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Raw output
tests/routes/pro/patch_venue_test.py:146: in test_update_venue_location_should_update_venue_offerer_address
    venue = offerers_models.Venue.query.one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2870: in one
    return self._iter().one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:1522: in one
    return self._only_one_row(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:614: in _only_one_row
    raise exc.MultipleResultsFound(
E   sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Check failure on line 723 in tests/routes/pro/patch_venue_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/patch_venue_test.py.test_no_venue_contact_created_if_no_data

AssertionError: assert 1 == 0
 +  where 1 = count()
 +    where count = <pcapi.models.pc_object.BaseQuery object at 0x7f54c29c5010>.count
 +      where <pcapi.models.pc_object.BaseQuery object at 0x7f54c29c5010> = <class 'pcapi.core.offerers.models.VenueContact'>.query
 +        where <class 'pcapi.core.offerers.models.VenueContact'> = offerers_models.VenueContact
Raw output
tests/routes/pro/patch_venue_test.py:735: in test_no_venue_contact_created_if_no_data
    assert offerers_models.VenueContact.query.count() == 0
E   AssertionError: assert 1 == 0
E    +  where 1 = count()
E    +    where count = <pcapi.models.pc_object.BaseQuery object at 0x7f54c29c5010>.count
E    +      where <pcapi.models.pc_object.BaseQuery object at 0x7f54c29c5010> = <class 'pcapi.core.offerers.models.VenueContact'>.query
E    +        where <class 'pcapi.core.offerers.models.VenueContact'> = offerers_models.VenueContact

Check failure on line 48 in tests/routes/pro/post_offerer_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/post_offerer_test.py.test_returned_data

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Raw output
tests/routes/pro/post_offerer_test.py:63: in test_returned_data
    created_offerer = offerers_models.Offerer.query.one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2870: in one
    return self._iter().one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:1522: in one
    return self._only_one_row(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:614: in _only_one_row
    raise exc.MultipleResultsFound(
E   sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Check failure on line 70 in tests/routes/pro/post_offerer_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/post_offerer_test.py.test_user_cant_create_same_offerer_twice

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Raw output
tests/routes/pro/post_offerer_test.py:85: in test_user_cant_create_same_offerer_twice
    created_offerer = offerers_models.Offerer.query.one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2870: in one
    return self._iter().one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:1522: in one
    return self._only_one_row(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:614: in _only_one_row
    raise exc.MultipleResultsFound(
E   sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Check failure on line 115 in tests/routes/pro/post_offerer_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/post_offerer_test.py.test_use_offerer_name_retrieved_from_sirene_api

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Raw output
tests/routes/pro/post_offerer_test.py:128: in test_use_offerer_name_retrieved_from_sirene_api
    offerers_models.Offerer.query.one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2870: in one
    return self._iter().one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:1522: in one
    return self._only_one_row(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:614: in _only_one_row
    raise exc.MultipleResultsFound(
E   sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Check failure on line 152 in tests/routes/pro/post_offerer_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/post_offerer_test.py.test_current_user_has_access_to_created_offerer

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Raw output
tests/routes/pro/post_offerer_test.py:170: in test_current_user_has_access_to_created_offerer
    offerer = offerers_models.Offerer.query.one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2870: in one
    return self._iter().one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:1522: in one
    return self._only_one_row(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:614: in _only_one_row
    raise exc.MultipleResultsFound(
E   sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Check failure on line 173 in tests/routes/pro/post_offerer_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/post_offerer_test.py.test_new_user_offerer_has_validation_status_new

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Raw output
tests/routes/pro/post_offerer_test.py:193: in test_new_user_offerer_has_validation_status_new
    offerer = offerers_models.Offerer.query.one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2870: in one
    return self._iter().one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:1522: in one
    return self._only_one_row(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:614: in _only_one_row
    raise exc.MultipleResultsFound(
E   sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Check failure on line 250 in tests/routes/pro/post_offerer_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/post_offerer_test.py.test_saint_martin_offerer_creation_without_postal_code_is_successfull

sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Raw output
tests/routes/pro/post_offerer_test.py:279: in test_saint_martin_offerer_creation_without_postal_code_is_successfull
    offerer = offerers_models.Offerer.query.one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/query.py:2870: in one
    return self._iter().one()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:1522: in one
    return self._only_one_row(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/result.py:614: in _only_one_row
    raise exc.MultipleResultsFound(
E   sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required

Check failure on line 33 in tests/routes/pro/post_save_new_onboarding_data_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/post_save_new_onboarding_data_test.py.test_nominal

sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "user_email_key"
DETAIL:  Key (email)=([email protected]) already exists.

[SQL: INSERT INTO "user" ("isActive", activity, address, city, civility, comment, "culturalSurveyFilledDate", "culturalSurveyId", "dateCreated", "dateOfBirth", "departementCode", email, "externalIds", "extraData", "firstName", "hasSeenProTutorials", "idPieceNumber", "ineHash", "irisFranceId", "isEmailValidated", "lastConnectionDate", "lastName", married_name, "needsToFillCulturalSurvey", "notificationSubscriptions", password, "phoneNumber", "phoneValidationStatus", "postalCode", "recreditAmountToShow", roles, "schoolType", "validatedBirthDate") VALUES (%(isActive)s, %(activity)s, %(address)s, %(city)s, %(civility)s, %(comment)s, %(culturalSurveyFilledDate)s, %(culturalSurveyId)s, %(dateCreated)s, %(dateOfBirth)s, %(departementCode)s, %(email)s, %(externalIds)s, %(extraData)s, %(firstName)s, %(hasSeenProTutorials)s, %(idPieceNumber)s, %(ineHash)s, %(irisFranceId)s, %(isEmailValidated)s, %(lastConnectionDate)s, %(lastName)s, %(married_name)s, %(needsToFillCulturalSurvey)s, %(notificationSubscriptions)s, %(password)s, %(phoneNumber)s, %(phoneValidationStatus)s, %(postalCode)s, %(recreditAmountToShow)s, %(roles)s::VARCHAR(20)[], %(schoolType)s, %(validatedBirthDate)s) RETURNING "user".id]
[parameters: {'isActive': True, 'activity': None, 'address': '532 place des noces rouges', 'city': 'La Rochelle', 'civility': None, 'comment': None, 'culturalSurveyFilledDate': None, 'culturalSurveyId': None, 'dateCreated': datetime.datetime(2024, 10, 1, 14, 23, 13, 669072), 'dateOfBirth': datetime.date(1984, 10, 1), 'departementCode': None, 'email': '[email protected]', 'externalIds': '{}', 'extraData': '{}', 'firstName': 'Jean', 'hasSeenProTutorials': True, 'idPieceNumber': None, 'ineHash': None, 'irisFranceId': None, 'isEmailValidated': True, 'lastConnectionDate': None, 'lastName': 'Neige', 'married_name': None, 'needsToFillCulturalSurvey': True, 'notificationSubscriptions': '{"marketing_push": true, "marketing_email": true, "subscribed_themes": []}', 'password': <psycopg2.extensions.Binary object at 0x7f54bf0fd7a0>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '44193', 'recreditAmountToShow': None, 'roles': [], 'schoolType': None, 'validatedBirthDate': None}]
(Background on this error at: https://sqlalche.me/e/14/gkpj)
Raw output
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1910: in _execute_context
    self.dialect.do_execute(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/default.py:736: in do_execute
    cursor.execute(statement, parameters)
E   psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "user_email_key"
E   DETAIL:  Key (email)=([email protected]) already exists.

The above exception was the direct cause of the following exception:
tests/routes/pro/post_save_new_onboarding_data_test.py:35: in test_nominal
    user = users_factories.UserFactory(email="[email protected]")
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:43: in __call__
    return cls.create(**kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:539: in create
    return cls._generate(enums.CREATE_STRATEGY, kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/alchemy.py:60: in _generate
    return super()._generate(strategy, params)
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:468: in _generate
    return step.build()
/home/pcapi/.local/lib/python3.11/site-packages/factory/builder.py:274: in build
    instance = self.factory_meta.instantiate(
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:320: in instantiate
    return self.factory._create(model, *args, **kwargs)
src/pcapi/core/users/factories.py:406: in _create
    instance = super()._create(model_class, *args, **kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/alchemy.py:116: in _create
    return cls._save(model_class, session, args, kwargs)
src/pcapi/core/factories.py:53: in _save
    return super()._save(model_class, session, *args, **kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/alchemy.py:127: in _save
    session.commit()
<string>:2: in commit
    ???
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:1454: in commit
    self._transaction.commit(_to_root=self.future)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:832: in commit
    self._prepare_impl()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:811: in _prepare_impl
    self.session.flush()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3449: in flush
    self._flush(objects)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3588: in _flush
    with util.safe_reraise():
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__
    compat.raise_(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/util/compat.py:211: in raise_
    raise exception
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3549: in _flush
    flush_context.execute()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py:456: in execute
    rec.execute(self)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py:630: in execute
    util.preloaded.orm_persistence.save_obj(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py:245: in save_obj
    _emit_insert_statements(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py:1238: in _emit_insert_statements
    result = connection._execute_20(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1710: in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py:334: in _execute_on_connection
    return connection._execute_clauseelement(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1577: in _execute_clauseelement
    ret = self._execute_context(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1953: in _execute_context
    self._handle_dbapi_exception(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:2134: in _handle_dbapi_exception
    util.raise_(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/util/compat.py:211: in raise_
    raise exception
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1910: in _execute_context
    self.dialect.do_execute(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/default.py:736: in do_execute
    cursor.execute(statement, parameters)
E   sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "user_email_key"
E   DETAIL:  Key (email)=([email protected]) already exists.
E   
E   [SQL: INSERT INTO "user" ("isActive", activity, address, city, civility, comment, "culturalSurveyFilledDate", "culturalSurveyId", "dateCreated", "dateOfBirth", "departementCode", email, "externalIds", "extraData", "firstName", "hasSeenProTutorials", "idPieceNumber", "ineHash", "irisFranceId", "isEmailValidated", "lastConnectionDate", "lastName", married_name, "needsToFillCulturalSurvey", "notificationSubscriptions", password, "phoneNumber", "phoneValidationStatus", "postalCode", "recreditAmountToShow", roles, "schoolType", "validatedBirthDate") VALUES (%(isActive)s, %(activity)s, %(address)s, %(city)s, %(civility)s, %(comment)s, %(culturalSurveyFilledDate)s, %(culturalSurveyId)s, %(dateCreated)s, %(dateOfBirth)s, %(departementCode)s, %(email)s, %(externalIds)s, %(extraData)s, %(firstName)s, %(hasSeenProTutorials)s, %(idPieceNumber)s, %(ineHash)s, %(irisFranceId)s, %(isEmailValidated)s, %(lastConnectionDate)s, %(lastName)s, %(married_name)s, %(needsToFillCulturalSurvey)s, %(notificationSubscriptions)s, %(password)s, %(phoneNumber)s, %(phoneValidationStatus)s, %(postalCode)s, %(recreditAmountToShow)s, %(roles)s::VARCHAR(20)[], %(schoolType)s, %(validatedBirthDate)s) RETURNING "user".id]
E   [parameters: {'isActive': True, 'activity': None, 'address': '532 place des noces rouges', 'city': 'La Rochelle', 'civility': None, 'comment': None, 'culturalSurveyFilledDate': None, 'culturalSurveyId': None, 'dateCreated': datetime.datetime(2024, 10, 1, 14, 23, 13, 669072), 'dateOfBirth': datetime.date(1984, 10, 1), 'departementCode': None, 'email': '[email protected]', 'externalIds': '{}', 'extraData': '{}', 'firstName': 'Jean', 'hasSeenProTutorials': True, 'idPieceNumber': None, 'ineHash': None, 'irisFranceId': None, 'isEmailValidated': True, 'lastConnectionDate': None, 'lastName': 'Neige', 'married_name': None, 'needsToFillCulturalSurvey': True, 'notificationSubscriptions': '{"marketing_push": true, "marketing_email": true, "subscribed_themes": []}', 'password': <psycopg2.extensions.Binary object at 0x7f54bf0fd7a0>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '44193', 'recreditAmountToShow': None, 'roles': [], 'schoolType': None, 'validatedBirthDate': None}]
E   (Background on this error at: https://sqlalche.me/e/14/gkpj)

Check failure on line 79 in tests/routes/pro/post_save_new_onboarding_data_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/post_save_new_onboarding_data_test.py.test_returns_public_information_only

sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "user_email_key"
DETAIL:  Key (email)=([email protected]) already exists.

[SQL: INSERT INTO "user" ("isActive", activity, address, city, civility, comment, "culturalSurveyFilledDate", "culturalSurveyId", "dateCreated", "dateOfBirth", "departementCode", email, "externalIds", "extraData", "firstName", "hasSeenProTutorials", "idPieceNumber", "ineHash", "irisFranceId", "isEmailValidated", "lastConnectionDate", "lastName", married_name, "needsToFillCulturalSurvey", "notificationSubscriptions", password, "phoneNumber", "phoneValidationStatus", "postalCode", "recreditAmountToShow", roles, "schoolType", "validatedBirthDate") VALUES (%(isActive)s, %(activity)s, %(address)s, %(city)s, %(civility)s, %(comment)s, %(culturalSurveyFilledDate)s, %(culturalSurveyId)s, %(dateCreated)s, %(dateOfBirth)s, %(departementCode)s, %(email)s, %(externalIds)s, %(extraData)s, %(firstName)s, %(hasSeenProTutorials)s, %(idPieceNumber)s, %(ineHash)s, %(irisFranceId)s, %(isEmailValidated)s, %(lastConnectionDate)s, %(lastName)s, %(married_name)s, %(needsToFillCulturalSurvey)s, %(notificationSubscriptions)s, %(password)s, %(phoneNumber)s, %(phoneValidationStatus)s, %(postalCode)s, %(recreditAmountToShow)s, %(roles)s::VARCHAR(20)[], %(schoolType)s, %(validatedBirthDate)s) RETURNING "user".id]
[parameters: {'isActive': True, 'activity': None, 'address': '533 place des noces rouges', 'city': 'La Rochelle', 'civility': None, 'comment': None, 'culturalSurveyFilledDate': None, 'culturalSurveyId': None, 'dateCreated': datetime.datetime(2024, 10, 1, 14, 23, 13, 944560), 'dateOfBirth': datetime.date(1984, 10, 1), 'departementCode': None, 'email': '[email protected]', 'externalIds': '{}', 'extraData': '{}', 'firstName': 'Jean', 'hasSeenProTutorials': True, 'idPieceNumber': None, 'ineHash': None, 'irisFranceId': None, 'isEmailValidated': True, 'lastConnectionDate': None, 'lastName': 'Neige', 'married_name': None, 'needsToFillCulturalSurvey': True, 'notificationSubscriptions': '{"marketing_push": true, "marketing_email": true, "subscribed_themes": []}', 'password': <psycopg2.extensions.Binary object at 0x7f54befdd470>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '91847', 'recreditAmountToShow': None, 'roles': [], 'schoolType': None, 'validatedBirthDate': None}]
(Background on this error at: https://sqlalche.me/e/14/gkpj)
Raw output
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1910: in _execute_context
    self.dialect.do_execute(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/default.py:736: in do_execute
    cursor.execute(statement, parameters)
E   psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "user_email_key"
E   DETAIL:  Key (email)=([email protected]) already exists.

The above exception was the direct cause of the following exception:
tests/routes/pro/post_save_new_onboarding_data_test.py:81: in test_returns_public_information_only
    user = users_factories.UserFactory(email="[email protected]")
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:43: in __call__
    return cls.create(**kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:539: in create
    return cls._generate(enums.CREATE_STRATEGY, kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/alchemy.py:60: in _generate
    return super()._generate(strategy, params)
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:468: in _generate
    return step.build()
/home/pcapi/.local/lib/python3.11/site-packages/factory/builder.py:274: in build
    instance = self.factory_meta.instantiate(
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:320: in instantiate
    return self.factory._create(model, *args, **kwargs)
src/pcapi/core/users/factories.py:406: in _create
    instance = super()._create(model_class, *args, **kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/alchemy.py:116: in _create
    return cls._save(model_class, session, args, kwargs)
src/pcapi/core/factories.py:53: in _save
    return super()._save(model_class, session, *args, **kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/alchemy.py:127: in _save
    session.commit()
<string>:2: in commit
    ???
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:1454: in commit
    self._transaction.commit(_to_root=self.future)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:832: in commit
    self._prepare_impl()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:811: in _prepare_impl
    self.session.flush()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3449: in flush
    self._flush(objects)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3588: in _flush
    with util.safe_reraise():
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__
    compat.raise_(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/util/compat.py:211: in raise_
    raise exception
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3549: in _flush
    flush_context.execute()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py:456: in execute
    rec.execute(self)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py:630: in execute
    util.preloaded.orm_persistence.save_obj(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py:245: in save_obj
    _emit_insert_statements(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py:1238: in _emit_insert_statements
    result = connection._execute_20(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1710: in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py:334: in _execute_on_connection
    return connection._execute_clauseelement(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1577: in _execute_clauseelement
    ret = self._execute_context(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1953: in _execute_context
    self._handle_dbapi_exception(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:2134: in _handle_dbapi_exception
    util.raise_(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/util/compat.py:211: in raise_
    raise exception
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1910: in _execute_context
    self.dialect.do_execute(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/default.py:736: in do_execute
    cursor.execute(statement, parameters)
E   sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "user_email_key"
E   DETAIL:  Key (email)=([email protected]) already exists.
E   
E   [SQL: INSERT INTO "user" ("isActive", activity, address, city, civility, comment, "culturalSurveyFilledDate", "culturalSurveyId", "dateCreated", "dateOfBirth", "departementCode", email, "externalIds", "extraData", "firstName", "hasSeenProTutorials", "idPieceNumber", "ineHash", "irisFranceId", "isEmailValidated", "lastConnectionDate", "lastName", married_name, "needsToFillCulturalSurvey", "notificationSubscriptions", password, "phoneNumber", "phoneValidationStatus", "postalCode", "recreditAmountToShow", roles, "schoolType", "validatedBirthDate") VALUES (%(isActive)s, %(activity)s, %(address)s, %(city)s, %(civility)s, %(comment)s, %(culturalSurveyFilledDate)s, %(culturalSurveyId)s, %(dateCreated)s, %(dateOfBirth)s, %(departementCode)s, %(email)s, %(externalIds)s, %(extraData)s, %(firstName)s, %(hasSeenProTutorials)s, %(idPieceNumber)s, %(ineHash)s, %(irisFranceId)s, %(isEmailValidated)s, %(lastConnectionDate)s, %(lastName)s, %(married_name)s, %(needsToFillCulturalSurvey)s, %(notificationSubscriptions)s, %(password)s, %(phoneNumber)s, %(phoneValidationStatus)s, %(postalCode)s, %(recreditAmountToShow)s, %(roles)s::VARCHAR(20)[], %(schoolType)s, %(validatedBirthDate)s) RETURNING "user".id]
E   [parameters: {'isActive': True, 'activity': None, 'address': '533 place des noces rouges', 'city': 'La Rochelle', 'civility': None, 'comment': None, 'culturalSurveyFilledDate': None, 'culturalSurveyId': None, 'dateCreated': datetime.datetime(2024, 10, 1, 14, 23, 13, 944560), 'dateOfBirth': datetime.date(1984, 10, 1), 'departementCode': None, 'email': '[email protected]', 'externalIds': '{}', 'extraData': '{}', 'firstName': 'Jean', 'hasSeenProTutorials': True, 'idPieceNumber': None, 'ineHash': None, 'irisFranceId': None, 'isEmailValidated': True, 'lastConnectionDate': None, 'lastName': 'Neige', 'married_name': None, 'needsToFillCulturalSurvey': True, 'notificationSubscriptions': '{"marketing_push": true, "marketing_email": true, "subscribed_themes": []}', 'password': <psycopg2.extensions.Binary object at 0x7f54befdd470>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '91847', 'recreditAmountToShow': None, 'roles': [], 'schoolType': None, 'validatedBirthDate': None}]
E   (Background on this error at: https://sqlalche.me/e/14/gkpj)

Check failure on line 92 in tests/routes/pro/post_save_new_onboarding_data_test.py

See this annotation in the file changed.

@github-actions github-actions / Pytest Report

tests/routes/pro/post_save_new_onboarding_data_test.py.test_validated_in_integration

sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "user_email_key"
DETAIL:  Key (email)=([email protected]) already exists.

[SQL: INSERT INTO "user" ("isActive", activity, address, city, civility, comment, "culturalSurveyFilledDate", "culturalSurveyId", "dateCreated", "dateOfBirth", "departementCode", email, "externalIds", "extraData", "firstName", "hasSeenProTutorials", "idPieceNumber", "ineHash", "irisFranceId", "isEmailValidated", "lastConnectionDate", "lastName", married_name, "needsToFillCulturalSurvey", "notificationSubscriptions", password, "phoneNumber", "phoneValidationStatus", "postalCode", "recreditAmountToShow", roles, "schoolType", "validatedBirthDate") VALUES (%(isActive)s, %(activity)s, %(address)s, %(city)s, %(civility)s, %(comment)s, %(culturalSurveyFilledDate)s, %(culturalSurveyId)s, %(dateCreated)s, %(dateOfBirth)s, %(departementCode)s, %(email)s, %(externalIds)s, %(extraData)s, %(firstName)s, %(hasSeenProTutorials)s, %(idPieceNumber)s, %(ineHash)s, %(irisFranceId)s, %(isEmailValidated)s, %(lastConnectionDate)s, %(lastName)s, %(married_name)s, %(needsToFillCulturalSurvey)s, %(notificationSubscriptions)s, %(password)s, %(phoneNumber)s, %(phoneValidationStatus)s, %(postalCode)s, %(recreditAmountToShow)s, %(roles)s::VARCHAR(20)[], %(schoolType)s, %(validatedBirthDate)s) RETURNING "user".id]
[parameters: {'isActive': True, 'activity': None, 'address': '534 place des noces rouges', 'city': 'La Rochelle', 'civility': None, 'comment': None, 'culturalSurveyFilledDate': None, 'culturalSurveyId': None, 'dateCreated': datetime.datetime(2024, 10, 1, 14, 23, 14, 204102), 'dateOfBirth': datetime.date(1984, 10, 1), 'departementCode': None, 'email': '[email protected]', 'externalIds': '{}', 'extraData': '{}', 'firstName': 'Jean', 'hasSeenProTutorials': True, 'idPieceNumber': None, 'ineHash': None, 'irisFranceId': None, 'isEmailValidated': True, 'lastConnectionDate': None, 'lastName': 'Neige', 'married_name': None, 'needsToFillCulturalSurvey': True, 'notificationSubscriptions': '{"marketing_push": true, "marketing_email": true, "subscribed_themes": []}', 'password': <psycopg2.extensions.Binary object at 0x7f54becbf030>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '73219', 'recreditAmountToShow': None, 'roles': [], 'schoolType': None, 'validatedBirthDate': None}]
(Background on this error at: https://sqlalche.me/e/14/gkpj)
Raw output
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1910: in _execute_context
    self.dialect.do_execute(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/default.py:736: in do_execute
    cursor.execute(statement, parameters)
E   psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "user_email_key"
E   DETAIL:  Key (email)=([email protected]) already exists.

The above exception was the direct cause of the following exception:
tests/routes/pro/post_save_new_onboarding_data_test.py:95: in test_validated_in_integration
    user = users_factories.UserFactory(email="[email protected]")
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:43: in __call__
    return cls.create(**kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:539: in create
    return cls._generate(enums.CREATE_STRATEGY, kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/alchemy.py:60: in _generate
    return super()._generate(strategy, params)
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:468: in _generate
    return step.build()
/home/pcapi/.local/lib/python3.11/site-packages/factory/builder.py:274: in build
    instance = self.factory_meta.instantiate(
/home/pcapi/.local/lib/python3.11/site-packages/factory/base.py:320: in instantiate
    return self.factory._create(model, *args, **kwargs)
src/pcapi/core/users/factories.py:406: in _create
    instance = super()._create(model_class, *args, **kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/alchemy.py:116: in _create
    return cls._save(model_class, session, args, kwargs)
src/pcapi/core/factories.py:53: in _save
    return super()._save(model_class, session, *args, **kwargs)
/home/pcapi/.local/lib/python3.11/site-packages/factory/alchemy.py:127: in _save
    session.commit()
<string>:2: in commit
    ???
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:1454: in commit
    self._transaction.commit(_to_root=self.future)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:832: in commit
    self._prepare_impl()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:811: in _prepare_impl
    self.session.flush()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3449: in flush
    self._flush(objects)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3588: in _flush
    with util.safe_reraise():
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py:70: in __exit__
    compat.raise_(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/util/compat.py:211: in raise_
    raise exception
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/session.py:3549: in _flush
    flush_context.execute()
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py:456: in execute
    rec.execute(self)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/unitofwork.py:630: in execute
    util.preloaded.orm_persistence.save_obj(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py:245: in save_obj
    _emit_insert_statements(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/orm/persistence.py:1238: in _emit_insert_statements
    result = connection._execute_20(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1710: in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/sql/elements.py:334: in _execute_on_connection
    return connection._execute_clauseelement(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1577: in _execute_clauseelement
    ret = self._execute_context(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1953: in _execute_context
    self._handle_dbapi_exception(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:2134: in _handle_dbapi_exception
    util.raise_(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/util/compat.py:211: in raise_
    raise exception
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/base.py:1910: in _execute_context
    self.dialect.do_execute(
/home/pcapi/.local/lib/python3.11/site-packages/sqlalchemy/engine/default.py:736: in do_execute
    cursor.execute(statement, parameters)
E   sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "user_email_key"
E   DETAIL:  Key (email)=([email protected]) already exists.
E   
E   [SQL: INSERT INTO "user" ("isActive", activity, address, city, civility, comment, "culturalSurveyFilledDate", "culturalSurveyId", "dateCreated", "dateOfBirth", "departementCode", email, "externalIds", "extraData", "firstName", "hasSeenProTutorials", "idPieceNumber", "ineHash", "irisFranceId", "isEmailValidated", "lastConnectionDate", "lastName", married_name, "needsToFillCulturalSurvey", "notificationSubscriptions", password, "phoneNumber", "phoneValidationStatus", "postalCode", "recreditAmountToShow", roles, "schoolType", "validatedBirthDate") VALUES (%(isActive)s, %(activity)s, %(address)s, %(city)s, %(civility)s, %(comment)s, %(culturalSurveyFilledDate)s, %(culturalSurveyId)s, %(dateCreated)s, %(dateOfBirth)s, %(departementCode)s, %(email)s, %(externalIds)s, %(extraData)s, %(firstName)s, %(hasSeenProTutorials)s, %(idPieceNumber)s, %(ineHash)s, %(irisFranceId)s, %(isEmailValidated)s, %(lastConnectionDate)s, %(lastName)s, %(married_name)s, %(needsToFillCulturalSurvey)s, %(notificationSubscriptions)s, %(password)s, %(phoneNumber)s, %(phoneValidationStatus)s, %(postalCode)s, %(recreditAmountToShow)s, %(roles)s::VARCHAR(20)[], %(schoolType)s, %(validatedBirthDate)s) RETURNING "user".id]
E   [parameters: {'isActive': True, 'activity': None, 'address': '534 place des noces rouges', 'city': 'La Rochelle', 'civility': None, 'comment': None, 'culturalSurveyFilledDate': None, 'culturalSurveyId': None, 'dateCreated': datetime.datetime(2024, 10, 1, 14, 23, 14, 204102), 'dateOfBirth': datetime.date(1984, 10, 1), 'departementCode': None, 'email': '[email protected]', 'externalIds': '{}', 'extraData': '{}', 'firstName': 'Jean', 'hasSeenProTutorials': True, 'idPieceNumber': None, 'ineHash': None, 'irisFranceId': None, 'isEmailValidated': True, 'lastConnectionDate': None, 'lastName': 'Neige', 'married_name': None, 'needsToFillCulturalSurvey': True, 'notificationSubscriptions': '{"marketing_push": true, "marketing_email": true, "subscribed_themes": []}', 'password': <psycopg2.extensions.Binary object at 0x7f54becbf030>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '73219', 'recreditAmountToShow': None, 'roles': [], 'schoolType': None, 'validatedBirthDate': None}]
E   (Background on this error at: https://sqlalche.me/e/14/gkpj)