Skip to content

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

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

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

Re-run triggered September 19, 2024 13:11
Status Failure
Total duration 7m 14s
Artifacts 6
Tests pro  /  ...  /  Style quality check
Tests pro / Type check / Quality check / Style quality check
Tests pro  /  Unit tests
Tests pro / Unit tests
[pcapi-tests] build docker image.  /  Build pcapi-tests:2371644e4983778c09fe8e9390421a4565d87768
3m 49s
[pcapi-tests] build docker image. / Build pcapi-tests:2371644e4983778c09fe8e9390421a4565d87768
[pcapi] build docker image.  /  Build pcapi:2371644e4983778c09fe8e9390421a4565d87768
2m 15s
[pcapi] build docker image. / Build pcapi:2371644e4983778c09fe8e9390421a4565d87768
[pcapi-console] build docker image.  /  Build pcapi-console:2371644e4983778c09fe8e9390421a4565d87768
3m 28s
[pcapi-console] build docker image. / Build pcapi-console:2371644e4983778c09fe8e9390421a4565d87768
MyPy cop  /  MyPy cop test
30s
MyPy cop / MyPy cop test
Tests API documentation  /  Check API documentation can be built
Tests API documentation / Check API documentation can be built
[PRO] Deploy PR version for validation  /  deploy_on_firebase
[PRO] Deploy PR version for validation / deploy_on_firebase
Dependabot  /  dependabot
Dependabot / dependabot
Matrix: Tests api / Pytest
Tests api  /  Quality checks
2m 53s
Tests api / Quality checks
Tests api  /  Pylint
5m 25s
Tests api / Pylint
Tests api  /  Test database schema
2m 46s
Tests api / Test database schema
Tests pro E2E  /  E2E tests and notifications
12m 23s
Tests pro E2E / E2E tests and notifications
Update api client template  /  Update API Client template
1m 51s
Update api client template / Update API Client template
Push pcapi docker image to registry  /  push-docker-image
Push pcapi docker image to registry / push-docker-image
Push pcapi-console docker image to registry  /  push-docker-image
Push pcapi-console docker image to registry / push-docker-image
Fit to window
Zoom out
Zoom in

Annotations

38 errors, 48 warnings, and 3 notices
tests/routes/pro/delete_stocks_test.py.test_delete_unaccessible_stocks: tests/routes/pro/delete_stocks_test.py#L65
assert False + where False = all(<generator object Returns204Test.test_delete_unaccessible_stocks.<locals>.<genexpr> at 0x7f3ea3efcd40>)
tests/routes/pro/get_offerer_addresses_test.py.test_get_offerer_addresses_success: tests/routes/pro/get_offerer_addresses_test.py#L15
AssertionError: assert [{'id': 684, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'}, {'id': 685, 'label': '2eme adresse', 'street': '20 Avenue de Ségur', 'postalCode': '75007', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'}, {'id': 686, 'label': '3eme adresse', 'street': None, 'postalCode': '75008', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 684, 'isEditable': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}, {'city': 'Paris', 'departmentCode': '75', 'id': 685, 'isEditable': True, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur'}, {'city': 'Paris', 'departmentCode': '75', 'id': 686, 'isEditable': True, 'label': '3eme adresse', 'postalCode': '75008', 'street': None}] At index 0 diff: {'id': 684, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 684, 'isEditable': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'} Full diff: [ { 'city': 'Paris', 'departmentCode': '75', 'id': 684, 'isEditable': True, 'label': '1ere adresse', - 'postalCode': '75002', ? ^ + 'postalCode': '75000', ? ^ 'street': '1 boulevard Poissonnière', }, { 'city': 'Paris', 'departmentCode': '75', 'id': 685, 'isEditable': True, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur', }, { 'city': 'Paris', 'departmentCode': '75', 'id': 686, 'isEditable': True, 'label': '3eme adresse', 'postalCode': '75008', 'street': None, }, ]
tests/routes/pro/get_offerer_addresses_test.py.test_get_offerer_addresses_with_offers: tests/routes/pro/get_offerer_addresses_test.py#L85
AssertionError: assert [{'id': 688, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isEditable': False, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 688, 'isEditable': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}] At index 0 diff: {'id': 688, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isEditable': False, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 688, 'isEditable': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'} Full diff: [ { 'city': 'Paris', 'departmentCode': '75', 'id': 688, 'isEditable': False, 'label': '1ere adresse', - 'postalCode': '75002', ? ^ + 'postalCode': '75000', ? ^ 'street': '1 boulevard Poissonnière', }, ]
tests/routes/pro/get_offerer_addresses_test.py.test_get_offerer_addresses_is_editable[True]: tests/routes/pro/get_offerer_addresses_test.py#L133
AssertionError: assert [{'id': 690, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isEditable': False, 'departmentCode': '75'}, {'id': 691, 'label': '2eme adresse', 'street': '20 Avenue de Ségur', 'postalCode': '75007', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'}, {'id': 692, 'label': '3eme adresse', 'street': '1 rue de la Paix', 'postalCode': '75008', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 690, 'isEditable': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}, {'city': 'Paris', 'departmentCode': '75', 'id': 691, 'isEditable': True, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur'}, {'city': 'Paris', 'departmentCode': '75', 'id': 692, 'isEditable': True, 'label': '3eme adresse', 'postalCode': '75008', 'street': '1 rue de la Paix'}] At index 0 diff: {'id': 690, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isEditable': False, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 690, 'isEditable': False, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'} Full diff: [ { 'city': 'Paris', 'departmentCode': '75', 'id': 690, 'isEditable': False, 'label': '1ere adresse', - 'postalCode': '75002', ? ^ + 'postalCode': '75000', ? ^ 'street': '1 boulevard Poissonnière', }, { 'city': 'Paris', 'departmentCode': '75', 'id': 691, 'isEditable': True, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur', }, { 'city': 'Paris', 'departmentCode': '75', 'id': 692, 'isEditable': True, 'label': '3eme adresse', 'postalCode': '75008', 'street': '1 rue de la Paix', }, ]
tests/routes/pro/get_offerer_addresses_test.py.test_get_offerer_addresses_is_editable[False]: tests/routes/pro/get_offerer_addresses_test.py#L133
AssertionError: assert [{'id': 693, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'}, {'id': 694, 'label': '2eme adresse', 'street': '20 Avenue de Ségur', 'postalCode': '75007', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'}, {'id': 695, 'label': '3eme adresse', 'street': '1 rue de la Paix', 'postalCode': '75008', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'}] == [{'city': 'Paris', 'departmentCode': '75', 'id': 693, 'isEditable': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'}, {'city': 'Paris', 'departmentCode': '75', 'id': 694, 'isEditable': True, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur'}, {'city': 'Paris', 'departmentCode': '75', 'id': 695, 'isEditable': True, 'label': '3eme adresse', 'postalCode': '75008', 'street': '1 rue de la Paix'}] At index 0 diff: {'id': 693, 'label': '1ere adresse', 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'city': 'Paris', 'isEditable': True, 'departmentCode': '75'} != {'city': 'Paris', 'departmentCode': '75', 'id': 693, 'isEditable': True, 'label': '1ere adresse', 'postalCode': '75002', 'street': '1 boulevard Poissonnière'} Full diff: [ { 'city': 'Paris', 'departmentCode': '75', 'id': 693, 'isEditable': True, 'label': '1ere adresse', - 'postalCode': '75002', ? ^ + 'postalCode': '75000', ? ^ 'street': '1 boulevard Poissonnière', }, { 'city': 'Paris', 'departmentCode': '75', 'id': 694, 'isEditable': True, 'label': '2eme adresse', 'postalCode': '75007', 'street': '20 Avenue de Ségur', }, { 'city': 'Paris', 'departmentCode': '75', 'id': 695, 'isEditable': True, 'label': '3eme adresse', 'postalCode': '75008', 'street': '1 rue de la Paix', }, ]
tests/routes/pro/get_offerers_names_test.py.test_get_all_offerers_names: tests/routes/pro/get_offerers_names_test.py#L154
AssertionError: assert 5 == 4 + where 5 = len([{'allowedOnAdage': True, 'id': 527, 'name': 'Le Petit Rintintin Management 526'}, {'allowedOnAdage': True, 'id': 823, 'name': 'Le Petit Rintintin Management 822'}, {'allowedOnAdage': True, 'id': 824, 'name': 'Le Petit Rintintin Management 823'}, {'allowedOnAdage': True, 'id': 825, 'name': 'Le Petit Rintintin Management 824'}, {'allowedOnAdage': True, 'id': 826, 'name': 'Le Petit Rintintin Management 825'}])
tests/routes/pro/get_offerers_names_test.py.test_get_all_validated_offerers: tests/routes/pro/get_offerers_names_test.py#L175
AssertionError: assert 3 == 2 + where 3 = len([{'allowedOnAdage': True, 'id': 527, 'name': 'Le Petit Rintintin Management 526'}, {'allowedOnAdage': True, 'id': 827, 'name': 'Le Petit Rintintin Management 826'}, {'allowedOnAdage': True, 'id': 829, 'name': 'Le Petit Rintintin Management 828'}])
tests/routes/pro/get_offers_test.py.should_filter_by_venue_when_user_is_admin_and_request_specific_venue_with_no_rights_on_it: tests/routes/pro/get_offers_test.py#L21
AssertionError: assert [{'hasBookingLimitDatetimesPassed': False, 'id': 291, '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': 794, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name', 'departementCode': '12'}, 'status': 'ACTIVE', 'isShowcase': False, 'address': {'id': 287, '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': 723, 'isEditable': False, 'isManualEdition': False}}] == [{'hasBookingLimitDatetimesPassed': False, 'id': 291, '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': 794, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name'}, 'isShowcase': False, 'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': '75', 'id': 287, 'id_oa': 723, 'inseeCode': '75102', 'isEditable': False, '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': 291, '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': 794, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name', 'departementCode': '12'}, 'status': 'ACTIVE', 'isShowcase': False, 'address': {'id': 287, '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': 723, 'isEditable': False, 'isManualEdition': False}} != {'hasBookingLimitDatetimesPassed': False, 'id': 291, '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': 794, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name'}, 'isShowcase': False, 'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': '75', 'id': 287, 'id_oa': 723, 'inseeCode': '75102', 'isEditable': False, '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': 287, 'id_oa': 723, 'inseeCode': '75102', 'isEditable': False, 'isManualEdition': False, 'label': 'My public name', 'latitude': 48.87004, 'longitude': 2.3785, - 'postalCode': '12000', ? ^^ + 'postalCode': '75000', ? ^^ 'street': '1 boulevard Poissonnière', }, 'hasBookingLimitDatetimesPassed': False, 'id': 291, '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': 794, 'isVirtual': False, 'name': 'My Venue', 'offererName': 'My Offerer', 'publicName': 'My public name', }, }, ]
tests/routes/pro/patch_offerer_address_test.py.test_user_cant_change_offerer_address_on_foreign_offerer: tests/routes/pro/patch_offerer_address_test.py#L38
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
tests/routes/pro/patch_offerer_address_test.py.test_user_can_change_offerer_address_label: tests/routes/pro/patch_offerer_address_test.py#L108
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
tests/routes/pro/patch_venue_test.py.test_update_venue_location_should_update_venue_offerer_address: tests/routes/pro/patch_venue_test.py#L110
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
tests/routes/pro/patch_venue_test.py.test_no_venue_contact_created_if_no_data: tests/routes/pro/patch_venue_test.py#L723
AssertionError: assert 1 == 0 + where 1 = count() + where count = <pcapi.models.pc_object.BaseQuery object at 0x7f3ea107e990>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7f3ea107e990> = <class 'pcapi.core.offerers.models.VenueContact'>.query + where <class 'pcapi.core.offerers.models.VenueContact'> = offerers_models.VenueContact
tests/routes/pro/post_offerer_test.py.test_returned_data: tests/routes/pro/post_offerer_test.py#L48
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
tests/routes/pro/post_offerer_test.py.test_user_cant_create_same_offerer_twice: tests/routes/pro/post_offerer_test.py#L70
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
tests/routes/pro/post_offerer_test.py.test_use_offerer_name_retrieved_from_sirene_api: tests/routes/pro/post_offerer_test.py#L115
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
tests/routes/pro/post_offerer_test.py.test_current_user_has_access_to_created_offerer: tests/routes/pro/post_offerer_test.py#L152
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
tests/routes/pro/post_offerer_test.py.test_new_user_offerer_has_validation_status_new: tests/routes/pro/post_offerer_test.py#L173
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
tests/routes/pro/post_offerer_test.py.test_saint_martin_offerer_creation_without_postal_code_is_successfull: tests/routes/pro/post_offerer_test.py#L250
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
tests/routes/pro/post_save_new_onboarding_data_test.py.test_nominal: tests/routes/pro/post_save_new_onboarding_data_test.py#L33
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': '531 place des noces rouges', 'city': 'La Rochelle', 'civility': None, 'comment': None, 'culturalSurveyFilledDate': None, 'culturalSurveyId': None, 'dateCreated': datetime.datetime(2024, 9, 19, 13, 17, 24, 719732), 'dateOfBirth': datetime.date(1984, 9, 19), '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 0x7f3e9fe00120>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '27248', 'recreditAmountToShow': None, 'roles': [], 'schoolType': None, 'validatedBirthDate': None}] (Background on this error at: https://sqlalche.me/e/14/gkpj)
tests/routes/pro/post_save_new_onboarding_data_test.py.test_returns_public_information_only: tests/routes/pro/post_save_new_onboarding_data_test.py#L79
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, 9, 19, 13, 17, 25, 9626), 'dateOfBirth': datetime.date(1984, 9, 19), '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 0x7f3e9e25c9c0>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '38290', 'recreditAmountToShow': None, 'roles': [], 'schoolType': None, 'validatedBirthDate': None}] (Background on this error at: https://sqlalche.me/e/14/gkpj)
tests/routes/pro/post_save_new_onboarding_data_test.py.test_validated_in_integration: tests/routes/pro/post_save_new_onboarding_data_test.py#L92
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, 9, 19, 13, 17, 25, 291073), 'dateOfBirth': datetime.date(1984, 9, 19), '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 0x7f3e9e161380>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '02058', 'recreditAmountToShow': None, 'roles': [], 'schoolType': None, 'validatedBirthDate': None}] (Background on this error at: https://sqlalche.me/e/14/gkpj)
tests/routes/pro/post_save_new_onboarding_data_test.py.test_siret_unknown: tests/routes/pro/post_save_new_onboarding_data_test.py#L109
AssertionError: assert 1 == 0 + where 1 = count() + where count = <pcapi.models.pc_object.BaseQuery object at 0x7f3ea4a83ad0>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7f3ea4a83ad0> = <class 'pcapi.core.offerers.models.Offerer'>.query + where <class 'pcapi.core.offerers.models.Offerer'> = offerers_models.Offerer
tests/routes/pro/post_save_new_onboarding_data_test.py.test_non_diffusible_siret: tests/routes/pro/post_save_new_onboarding_data_test.py#L121
AssertionError: assert 1 == 0 + where 1 = count() + where count = <pcapi.models.pc_object.BaseQuery object at 0x7f3ea398ba50>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7f3ea398ba50> = <class 'pcapi.core.offerers.models.Offerer'>.query + where <class 'pcapi.core.offerers.models.Offerer'> = offerers_models.Offerer
tests/routes/pro/post_save_new_onboarding_data_test.py.test_inactive_siret: tests/routes/pro/post_save_new_onboarding_data_test.py#L134
AssertionError: assert 1 == 0 + where 1 = count() + where count = <pcapi.models.pc_object.BaseQuery object at 0x7f3ea58abc50>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7f3ea58abc50> = <class 'pcapi.core.offerers.models.Offerer'>.query + where <class 'pcapi.core.offerers.models.Offerer'> = offerers_models.Offerer
tests/routes/pro/post_save_new_onboarding_data_test.py.test_sirene_api_ko: tests/routes/pro/post_save_new_onboarding_data_test.py#L156
AssertionError: assert 1 == 0 + where 1 = count() + where count = <pcapi.models.pc_object.BaseQuery object at 0x7f3ea4a9b890>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7f3ea4a9b890> = <class 'pcapi.core.offerers.models.Offerer'>.query + where <class 'pcapi.core.offerers.models.Offerer'> = offerers_models.Offerer
tests/routes/pro/post_stocks_test.py.test_create_one_product_stock: tests/routes/pro/post_stocks_test.py#L26
AssertionError: assert 2 == 1 + where 2 = len([<Stock #312>, <Stock #166>]) + where [<Stock #312>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7f3ebc5ebc50>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7f3ebc5ebc50> = Stock.query + and 1 = len([{'price': 20}])
tests/routes/pro/post_stocks_test.py.test_create_one_free_product_stock: tests/routes/pro/post_stocks_test.py#L59
AssertionError: assert 2 == 1 + where 2 = len([<Stock #313>, <Stock #166>]) + where [<Stock #313>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7f3ea2140990>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7f3ea2140990> = Stock.query + and 1 = len([{'price': 0}])
tests/routes/pro/post_stocks_test.py.test_create_event_stocks: tests/routes/pro/post_stocks_test.py#L92
assert 4 == 3 + where 4 = len([<Stock #166>, <Stock #314>, <Stock #315>, <Stock #316>])
tests/routes/pro/post_stocks_test.py.test_create_event_stocks_with_multi_price: tests/routes/pro/post_stocks_test.py#L150
assert 4 == 3 + where 4 = len([<Stock #166>, <Stock #317>, <Stock #319>, <Stock #318>])
tests/routes/pro/post_stocks_test.py.test_edit_one_stock: tests/routes/pro/post_stocks_test.py#L199
assert 2 == 1 + where 2 = len([<Stock #320>, <Stock #166>]) + where [<Stock #320>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7f3eae76c650>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7f3eae76c650> = Stock.query
tests/routes/pro/post_stocks_test.py.test_edit_one_event_stock_using_price_category: tests/routes/pro/post_stocks_test.py#L306
assert 2 == 1 + where 2 = len([<Stock #324>, <Stock #166>]) + where [<Stock #324>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7f3ea1d97e10>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7f3ea1d97e10> = Stock.query
tests/routes/pro/post_stocks_test.py.test_edit_one_event_stock_created_with_price_category: tests/routes/pro/post_stocks_test.py#L343
assert 2 == 1 + where 2 = len([<Stock #325>, <Stock #166>]) + where [<Stock #325>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7f3ea3da9210>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7f3ea3da9210> = Stock.query
tests/routes/pro/post_stocks_test.py.test_sends_email_if_beginning_date_changes_on_edition: tests/routes/pro/post_stocks_test.py#L473
sqlalchemy.exc.MultipleResultsFound: Multiple rows were found when exactly one was required
Tests api / Pytest (tests/routes -m 'not backoffice')
❌ Tests reported 37 failures
Tests pro E2E / E2E tests and notifications
Running e2e-tests with europe-west1-docker.pkg.dev/passculture-infra-prod/pass-culture-artifact-registry/pcapi:2371644e4983778c09fe8e9390421a4565d87768
Tests api / Quality checks
Running tests api with europe-west1-docker.pkg.dev/passculture-infra-prod/pass-culture-artifact-registry/pcapi-tests:2371644e4983778c09fe8e9390421a4565d87768
Update api client template / Update API Client template
Running update api client template with europe-west1-docker.pkg.dev/passculture-infra-prod/pass-culture-artifact-registry/pcapi:2371644e4983778c09fe8e9390421a4565d87768
Tests pro E2E / E2E tests and notifications
The following actions uses node12 which is deprecated and will be forced to run on node16: docker/login-action@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests pro E2E / E2E tests and notifications
The following actions use a deprecated Node.js version and will be forced to run on node20: technote-space/workflow-conclusion-action@v3, docker/login-action@v1, actions/setup-node@v3, actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Tests pro E2E / E2E tests and notifications
The "process_gcloudignore" option is true, but no .gcloudignore file was found. If you do not intend to process a gcloudignore file, set "process_gcloudignore" to false.
Tests pro E2E / E2E tests and notifications
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests pro E2E / E2E tests and notifications
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests pro E2E / E2E tests and notifications
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pylint
The following actions uses node12 which is deprecated and will be forced to run on node16: docker/login-action@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests api / Pylint
The following actions use a deprecated Node.js version and will be forced to run on node20: docker/login-action@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Tests api / Pylint
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pylint
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pylint
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Quality checks
The following actions uses node12 which is deprecated and will be forced to run on node16: docker/login-action@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests api / Quality checks
The following actions use a deprecated Node.js version and will be forced to run on node20: docker/login-action@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Tests api / Quality checks
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Quality checks
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Quality checks
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Test database schema
The following actions uses node12 which is deprecated and will be forced to run on node16: docker/login-action@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests api / Test database schema
The following actions use a deprecated Node.js version and will be forced to run on node20: docker/login-action@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Tests api / Test database schema
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Test database schema
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Test database schema
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/core/bookings tests/core/offers tests/core/finance)
The following actions uses node12 which is deprecated and will be forced to run on node16: docker/login-action@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests api / Pytest (tests/core/bookings tests/core/offers tests/core/finance)
The following actions use a deprecated Node.js version and will be forced to run on node20: docker/login-action@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Tests api / Pytest (tests/core/bookings tests/core/offers tests/core/finance)
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/core/bookings tests/core/offers tests/core/finance)
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/core/bookings tests/core/offers tests/core/finance)
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests --ignore=tests/core --ignore=tests/routes)
The following actions uses node12 which is deprecated and will be forced to run on node16: docker/login-action@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests api / Pytest (tests --ignore=tests/core --ignore=tests/routes)
The following actions use a deprecated Node.js version and will be forced to run on node20: docker/login-action@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Tests api / Pytest (tests/core --ignore=tests/core/bookings --ignore=tests/core/offers --ignore=tests/core/fi...
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests --ignore=tests/core --ignore=tests/routes)
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/core --ignore=tests/core/bookings --ignore=tests/core/offers --ignore=tests/core/fi...
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests --ignore=tests/core --ignore=tests/routes)
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/core --ignore=tests/core/bookings --ignore=tests/core/offers --ignore=tests/core/fi...
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests --ignore=tests/core --ignore=tests/routes)
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/routes/backoffice -m 'backoffice')
The following actions uses node12 which is deprecated and will be forced to run on node16: docker/login-action@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests api / Pytest (tests/routes/backoffice -m 'backoffice')
The following actions use a deprecated Node.js version and will be forced to run on node20: docker/login-action@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Tests api / Pytest (tests/routes/backoffice -m 'backoffice')
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/routes/backoffice -m 'backoffice')
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/routes/backoffice -m 'backoffice')
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Update api client template / Update API Client template
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/setup-node@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Update api client template / Update API Client template
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/setup-node@v2, actions/cache@v3. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Tests api / Pytest (tests/routes -m 'not backoffice')
The following actions uses node12 which is deprecated and will be forced to run on node16: docker/login-action@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests api / Pytest (tests/routes -m 'not backoffice')
The following actions use a deprecated Node.js version and will be forced to run on node20: docker/login-action@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
Tests api / Pytest (tests/routes -m 'not backoffice')
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/routes -m 'not backoffice')
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests api / Pytest (tests/routes -m 'not backoffice')
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/