Skip to content

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

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

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

Triggered via pull request September 19, 2024 07:43
Status Failure
Total duration 16m 39s
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:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
3m 46s
[pcapi-tests] build docker image. / Build pcapi-tests:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
[pcapi] build docker image.  /  Build pcapi:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
2m 18s
[pcapi] build docker image. / Build pcapi:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
[pcapi-console] build docker image.  /  Build pcapi-console:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
3m 26s
[pcapi-console] build docker image. / Build pcapi-console:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
MyPy cop  /  MyPy cop test
31s
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 37s
Tests api / Quality checks
Tests api  /  Pylint
5m 33s
Tests api / Pylint
Tests api  /  Test database schema
2m 41s
Tests api / Test database schema
Tests pro E2E  /  E2E tests and notifications
12m 35s
Tests pro E2E / E2E tests and notifications
Update api client template  /  Update API Client template
1m 55s
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

47 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 0x7fbbdd3965a0>)
tests/routes/pro/get_offer_test.py.test_returns_an_event_stock: tests/routes/pro/get_offer_test.py#L119
AssertionError: assert {'audioDisabilityCompliant': False, 'mentalDisabilityCompliant': True, 'motorDisabilityCompliant': False, 'visualDisabilityCompliant': False, 'activeMediation': None, 'bookingContact': None, 'bookingsCount': 0, 'bookingEmail': '[email protected]', 'dateCreated': '2020-10-15T00:00:00Z', 'publicationDate': None, 'description': 'Tatort, but slower', 'durationMinutes': 60, 'extraData': None, 'hasBookingLimitDatetimesPassed': False, 'hasStocks': True, 'isActive': True, 'isActivable': True, 'isDigital': False, 'isDuo': False, 'isEditable': True, 'isEvent': True, 'isNational': False, 'isThing': False, 'id': 249, 'lastProvider': None, 'name': 'Derrick', 'priceCategories': [{'price': 10.1, 'label': 'Au pied du mur', 'id': 102}], 'subcategoryId': 'SEANCE_CINE', 'productId': None, 'thumbUrl': None, 'externalTicketOfficeUrl': 'http://example.net', 'url': None, 'venue': {'audioDisabilityCompliant': False, 'mentalDisabilityCompliant': False, 'motorDisabilityCompliant': False, 'visualDisabilityCompliant': False, 'street': '1 boulevard Poissonnière', 'bookingEmail': '[email protected]', 'city': 'Paris', 'departementCode': '75', 'id': 711, 'isVirtual': False, 'managingOfferer': {'id': 738, 'name': 'Test Offerer', 'allowedOnAdage': True}, 'name': 'La petite librairie', 'postalCode': '75000', 'publicName': 'La petite librairie'}, 'withdrawalDelay': 1800, 'withdrawalDetails': 'Veuillez chercher votre billet au guichet', 'withdrawalType': 'on_site', 'status': 'ACTIVE', 'isNonFreeOffer': None, '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': None, 'label': 'La petite librairie', 'id_oa': 673, 'isEditable': False, 'isManualEdition': False}, 'hasPendingBookings': False} == {'activeMediation': None, 'bookingContact': None, 'bookingsCount': 0, 'bookingEmail': '[email protected]', 'dateCreated': '2020-10-15T00:00:00Z', 'productId': None, 'publicationDate': None, 'description': 'Tatort, but slower', 'durationMinutes': 60, 'extraData': None, 'externalTicketOfficeUrl': 'http://example.net', 'hasBookingLimitDatetimesPassed': False, 'hasPendingBookings': False, 'hasStocks': True, 'isActive': True, 'isActivable': True, 'audioDisabilityCompliant': False, 'mentalDisabilityCompliant': True, 'motorDisabilityCompliant': False, 'visualDisabilityCompliant': False, 'isDigital': False, 'isDuo': False, 'isEditable': True, 'isEvent': True, 'isNational': False, 'isThing': False, 'lastProvider': None, 'name': 'Derrick', 'id': 249, 'status': 'ACTIVE', 'isNonFreeOffer': None, 'priceCategories': [{'label': 'Au pied du mur', 'price': 10.1, 'id': 102}], 'subcategoryId': 'SEANCE_CINE', 'thumbUrl': None, 'url': None, 'address': {'label': 'La petite librairie', 'id': 287, 'id_oa': 673, 'banId': '75102_7560_00001', 'departmentCode': '75', 'inseeCode': '75102', 'city': 'Paris', 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '75000', 'street': '1 boulevard Poissonnière', 'isEditable': False, 'isManualEdition': False}, 'venue': {'street': '1 boulevard Poissonnière', 'audioDisabilityCompliant': False, 'bookingEmail': '[email protected]', 'city': 'Paris', 'departementCode': '75', 'id': 711, 'isVirtual': False, 'managingOfferer': {'id': 738, 'name': 'Test Offerer', 'allowedOnAdage': True}, 'mentalDisabilityCompliant': False, 'motorDisabilityCompliant': False, 'name': 'La petite librairie', 'postalCode': '75000', 'publicName': 'La petite librairie', 'visualDisabilityCompliant': False}, 'withdrawalDetails': 'Veuillez chercher votre billet au guichet', 'withdrawalType': 'on_site', 'withdrawalDelay': 1800} Common items: {'activeMediation': None, 'audioDisabilityCompliant': False, 'bookingContact': None, 'bookingEmail': '[email protected]', 'bookingsCount': 0, 'dateCreated': '2020-10-15T00:00:00Z', 'description': 'Tatort, but slower', 'durationMinutes': 60, 'externalTicketOfficeUrl': 'http://example.net', 'extraData': None, 'hasBookingLimitDatetimesPassed': False, 'hasPendingBookings': False, 'hasStocks': True, 'id': 249, 'isActivable': True, 'isActive': True, 'isDigital': False, 'isDuo': False, 'isEditable': True, 'isEvent': True, 'isNational': False, 'isNonFreeOffer': None, 'isThing': False, 'lastProvider': None, 'mentalDisabilityCompliant': True, 'motorDisabilityCompliant': False, 'name': 'Derrick', 'priceCategories': [{'id': 102, 'label': 'Au pied du mur', 'price': 10.1}], 'productId': None, 'publicationDate': None, 'status': 'ACTIVE', 'subcategoryId': 'SEANCE_CINE', 'thumbUrl': None, 'url': None, 'venue': {'audioDisabilityCompliant': False, 'bookingEmail': '[email protected]', 'city': 'Paris', 'departementCode': '75', 'id': 711, 'isVirtual': False, 'managingOfferer': {'allowedOnAdage': True, 'id': 738, 'name': 'Test Offerer'}, 'mentalDisabilityCompliant': False, 'motorDisabilityCompliant': False, 'name': 'La petite librairie', 'postalCode': '75000', 'publicName': 'La petite librairie', 'street': '1 boulevard Poissonnière', 'visualDisabilityCompliant': False}, 'visualDisabilityCompliant': False, 'withdrawalDelay': 1800, 'withdrawalDetails': 'Veuillez chercher votre billet au guichet', 'withdrawalType': 'on_site'} Differing items: {'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': None, 'id': 287, ...}} != {'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': '75', 'id': 287, ...}} Full diff: { 'activeMediation': None, 'address': { 'banId': '75102_7560_00001', 'city': 'Paris', - 'departmentCode': '75', ? ^^^^ + 'departmentCode': None, ? ^^^^ 'id': 287, 'id_oa': 673, 'inseeCode': '75102', 'isEditable': False, 'isManualEdition': False, 'label': 'La petite librairie', 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '75000', 'street': '1 boulevard Poissonnière', }, 'audioDisabilityCompliant': False, 'bookingContact': None, 'bookingEmail': '[email protected]', 'bookingsCount': 0, 'dateCreated': '2020-10-15T00:00:00Z', 'description': 'Tatort, but slower', 'durationMinutes': 60, 'externalTicketOfficeUrl': 'http://example.net', 'extraData': None, 'hasBookingLimitDatetimesPassed': False, 'hasPendingBookings': False, 'hasStocks': True, 'id': 249, 'isActivable': True, 'isActive': True, 'isDigital': False, 'isDuo': False, 'isEditable': True, 'isEvent': True, 'isNational': False, 'isNonFreeOffer': None, 'isThing': False, 'lastProvider': None, 'mentalDisabilityCompliant': True, 'motorDisabilityCompliant': False, 'name': 'Derrick', 'priceCategories': [ { 'id': 102, 'label': 'Au pied du mur', 'price': 10.1, }, ], 'productId': None, 'publicationDate': None, 'status': 'ACTIVE', 'subcategoryId': 'SEANCE_CINE', 'thumbUrl': None, 'url': None, 'venue': { 'audioDisabilityCompliant': False, 'bookingEmail': '[email protected]', 'city': 'Paris', 'departementCode': '75', 'id': 711, 'isVirtual': False, 'managingOfferer': { 'allowedOnAdage': True, 'id': 738, 'name': 'Test Offerer', }, 'mentalDisabilityCompliant': False, 'motorDisabilityCompliant': False, 'name': 'La petite librairie', 'postalCode': '75000', 'publicName': 'La petite librairie', 'street': '1 boulevard Poissonnière', 'visualDisabilityCompliant': False, }, 'visualDisabilityCompliant': False, 'withdrawalDelay': 1800, 'withdrawalDetails': 'Veuillez chercher votre billet au guichet', 'withdrawalType': 'on_site', }
tests/routes/pro/get_offer_test.py.test_return_offer_offerer_address: tests/routes/pro/get_offer_test.py#L308
AssertionError: assert {'id': 290, 'banId': '75102_7560_00001', 'inseeCode': '75102', 'postalCode': '75002', 'street': '1699 boulevard Poissonnière', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'departmentCode': None, 'label': 'Address label 699', 'id_oa': 679, 'isEditable': True, 'isManualEdition': False} == {'label': 'Address label 699', 'id': 290, 'id_oa': 679, 'banId': '75102_7560_00001', 'departmentCode': '75', 'inseeCode': '75102', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '1699 boulevard Poissonnière', 'isEditable': True, 'isManualEdition': False} Common items: {'banId': '75102_7560_00001', 'city': 'Paris', 'id': 290, 'id_oa': 679, 'inseeCode': '75102', 'isEditable': True, 'isManualEdition': False, 'label': 'Address label 699', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '1699 boulevard Poissonnière'} Differing items: {'departmentCode': None} != {'departmentCode': '75'} Full diff: { 'banId': '75102_7560_00001', 'city': 'Paris', - 'departmentCode': '75', ? ^^^^ + 'departmentCode': None, ? ^^^^ 'id': 290, 'id_oa': 679, 'inseeCode': '75102', 'isEditable': True, 'isManualEdition': False, 'label': 'Address label 699', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '1699 boulevard Poissonnière', }
tests/routes/pro/get_offer_test.py.test_return_venue_offerer_address: tests/routes/pro/get_offer_test.py#L342
AssertionError: assert {'id': 291, 'banId': '75102_7560_00001', 'inseeCode': '75102', 'postalCode': '75002', 'street': '1700 boulevard Poissonnière', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'departmentCode': None, 'label': 'Address label 700', 'id_oa': 680, 'isEditable': False, 'isManualEdition': False} == {'label': 'Address label 700', 'id': 291, 'id_oa': 680, 'banId': '75102_7560_00001', 'departmentCode': '75', 'inseeCode': '75102', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '1700 boulevard Poissonnière', 'isEditable': False, 'isManualEdition': False} Common items: {'banId': '75102_7560_00001', 'city': 'Paris', 'id': 291, 'id_oa': 680, 'inseeCode': '75102', 'isEditable': False, 'isManualEdition': False, 'label': 'Address label 700', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '1700 boulevard Poissonnière'} Differing items: {'departmentCode': None} != {'departmentCode': '75'} Full diff: { 'banId': '75102_7560_00001', 'city': 'Paris', - 'departmentCode': '75', ? ^^^^ + 'departmentCode': None, ? ^^^^ 'id': 291, 'id_oa': 680, 'inseeCode': '75102', 'isEditable': False, 'isManualEdition': False, 'label': 'Address label 700', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '1700 boulevard Poissonnière', }
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': 243, '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': None, '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': 243, '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': 243, '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': None, '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': 243, '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', ? ^^^^ + 'departmentCode': None, ? ^^^^ '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': 243, '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/get_offers_test.py.should_return_event_correctly_serialized: tests/routes/pro/get_offers_test.py#L358
AssertionError: assert [{'hasBookingLimitDatetimesPassed': True, 'id': 299, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Offer 298', 'stocks': [{'id': 248, 'hasBookingLimitDatetimePassed': True, 'remainingQuantity': 1000, 'beginningDatetime': '2022-09-21T13:19:00Z', 'bookingQuantity': 0}], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'SEANCE_CINE', 'venue': {'id': 804, 'isVirtual': False, 'name': 'Le Petit Rintintin 803', 'offererName': 'Le Petit Rintintin Management 851', 'publicName': 'Le Petit Rintintin 803', 'departementCode': '75'}, 'status': 'EXPIRED', 'isShowcase': False, 'address': {'id': 304, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'postalCode': '75002', 'street': '8 Boulevard de Bercy', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'departmentCode': None, 'label': 'Accor Arena', 'id_oa': 736, 'isEditable': True, 'isManualEdition': False}}] == [{'hasBookingLimitDatetimesPassed': True, 'id': 299, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Offer 298', 'stocks': [{'id': 248, 'hasBookingLimitDatetimePassed': True, 'remainingQuantity': 1000, 'beginningDatetime': '2022-09-21T13:19:00Z', 'bookingQuantity': 0}], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'SEANCE_CINE', 'venue': {'id': 804, 'isVirtual': False, 'name': 'Le Petit Rintintin 803', 'offererName': 'Le Petit Rintintin Management 851', 'publicName': 'Le Petit Rintintin 803', 'departementCode': '75'}, 'status': 'EXPIRED', 'isShowcase': False, 'address': {'banId': '75112_0877_00008', 'city': 'Paris', 'departmentCode': '75', 'id': 304, 'id_oa': 736, 'inseeCode': '75112', 'isEditable': True, 'isManualEdition': False, 'label': 'Accor Arena', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '8 Boulevard de Bercy'}}] At index 0 diff: {'hasBookingLimitDatetimesPassed': True, 'id': 299, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Offer 298', 'stocks': [{'id': 248, 'hasBookingLimitDatetimePassed': True, 'remainingQuantity': 1000, 'beginningDatetime': '2022-09-21T13:19:00Z', 'bookingQuantity': 0}], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'SEANCE_CINE', 'venue': {'id': 804, 'isVirtual': False, 'name': 'Le Petit Rintintin 803', 'offererName': 'Le Petit Rintintin Management 851', 'publicName': 'Le Petit Rintintin 803', 'departementCode': '75'}, 'status': 'EXPIRED', 'isShowcase': False, 'address': {'id': 304, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'postalCode': '75002', 'street': '8 Boulevard de Bercy', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'departmentCode': None, 'label': 'Accor Arena', 'id_oa': 736, 'isEditable': True, 'isManualEdition': False}} != {'hasBookingLimitDatetimesPassed': True, 'id': 299, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Offer 298', 'stocks': [{'id': 248, 'hasBookingLimitDatetimePassed': True, 'remainingQuantity': 1000, 'beginningDatetime': '2022-09-21T13:19:00Z', 'bookingQuantity': 0}], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'SEANCE_CINE', 'venue': {'id': 804, 'isVirtual': False, 'name': 'Le Petit Rintintin 803', 'offererName': 'Le Petit Rintintin Management 851', 'publicName': 'Le Petit Rintintin 803', 'departementCode': '75'}, 'status': 'EXPIRED', 'isShowcase': False, 'address': {'banId': '75112_0877_00008', 'city': 'Paris', 'departmentCode': '75', 'id': 304, 'id_oa': 736, 'inseeCode': '75112', 'isEditable': True, 'isManualEdition': False, 'label': 'Accor Arena', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '8 Boulevard de Bercy'}} Full diff: [ { 'address': { 'banId': '75112_0877_00008', 'city': 'Paris', - 'departmentCode': '75', ? ^^^^ + 'departmentCode': None, ? ^^^^ 'id': 304, 'id_oa': 736, 'inseeCode': '75112', 'isEditable': True, 'isManualEdition': False, 'label': 'Accor Arena', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '8 Boulevard de Bercy', }, 'hasBookingLimitDatetimesPassed': True, 'id': 299, 'isActive': True, 'isEditable': True, 'isEducational': False, 'isEvent': True, 'isShowcase': False, 'isThing': False, 'name': 'Offer 298', 'productIsbn': None, 'status': 'EXPIRED', 'stocks': [ { 'beginningDatetime': '2022-09-21T13:19:00Z', 'bookingQuantity': 0, 'hasBookingLimitDatetimePassed': True, 'id': 248, 'remainingQuantity': 1000, }, ], 'subcategoryId': 'SEANCE_CINE', 'thumbUrl': None, 'venue': { 'departementCode': '75', 'id': 804, 'isVirtual': False, 'name': 'Le Petit Rintintin 803', 'offererName': 'Le Petit Rintintin Management 851', 'publicName': 'Le Petit Rintintin 803', }, }, ]
tests/routes/pro/get_offers_test.py.should_not_return_soft_deleted_stocks: tests/routes/pro/get_offers_test.py#L429
AssertionError: assert [{'hasBookingLimitDatetimesPassed': False, 'id': 300, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Offer 299', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'SEANCE_CINE', 'venue': {'id': 805, 'isVirtual': False, 'name': 'Le Petit Rintintin 804', 'offererName': 'Le Petit Rintintin Management 852', 'publicName': 'Le Petit Rintintin 804', 'departementCode': '75'}, 'status': 'SOLD_OUT', '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': None, 'label': 'Le Petit Rintintin 804', 'id_oa': 737, 'isEditable': False, 'isManualEdition': False}}] == [{'hasBookingLimitDatetimesPassed': False, 'id': 300, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Offer 299', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'SEANCE_CINE', 'venue': {'id': 805, 'isVirtual': False, 'name': 'Le Petit Rintintin 804', 'offererName': 'Le Petit Rintintin Management 852', 'publicName': 'Le Petit Rintintin 804', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': '75', 'id': 287, 'id_oa': 737, 'inseeCode': '75102', 'isEditable': False, 'isManualEdition': False, 'label': 'Le Petit Rintintin 804', 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '75000', 'street': '1 boulevard Poissonnière'}}] At index 0 diff: {'hasBookingLimitDatetimesPassed': False, 'id': 300, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Offer 299', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'SEANCE_CINE', 'venue': {'id': 805, 'isVirtual': False, 'name': 'Le Petit Rintintin 804', 'offererName': 'Le Petit Rintintin Management 852', 'publicName': 'Le Petit Rintintin 804', 'departementCode': '75'}, 'status': 'SOLD_OUT', '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': None, 'label': 'Le Petit Rintintin 804', 'id_oa': 737, 'isEditable': False, 'isManualEdition': False}} != {'hasBookingLimitDatetimesPassed': False, 'id': 300, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Offer 299', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'SEANCE_CINE', 'venue': {'id': 805, 'isVirtual': False, 'name': 'Le Petit Rintintin 804', 'offererName': 'Le Petit Rintintin Management 852', 'publicName': 'Le Petit Rintintin 804', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': '75', 'id': 287, 'id_oa': 737, 'inseeCode': '75102', 'isEditable': False, 'isManualEdition': False, 'label': 'Le Petit Rintintin 804', 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '75000', 'street': '1 boulevard Poissonnière'}} Full diff: [ { 'address': { 'banId': '75102_7560_00001', 'city': 'Paris', - 'departmentCode': '75', ? ^^^^ + 'departmentCode': None, ? ^^^^ 'id': 287, 'id_oa': 737, 'inseeCode': '75102', 'isEditable': False, 'isManualEdition': False, 'label': 'Le Petit Rintintin 804', 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '75000', 'street': '1 boulevard Poissonnière', }, 'hasBookingLimitDatetimesPassed': False, 'id': 300, 'isActive': True, 'isEditable': True, 'isEducational': False, 'isEvent': True, 'isShowcase': False, 'isThing': False, 'name': 'Offer 299', 'productIsbn': None, 'status': 'SOLD_OUT', 'stocks': [], 'subcategoryId': 'SEANCE_CINE', 'thumbUrl': None, 'venue': { 'departementCode': '75', 'id': 805, 'isVirtual': False, 'name': 'Le Petit Rintintin 804', 'offererName': 'Le Petit Rintintin Management 852', 'publicName': 'Le Petit Rintintin 804', }, }, ]
tests/routes/pro/get_offers_test.py.should_return_offers_filtered_by_offerer_address: tests/routes/pro/get_offers_test.py#L490
AssertionError: assert [{'hasBookingLimitDatetimesPassed': False, 'id': 302, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Taylor Swift', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 806, 'isVirtual': False, 'name': 'Le Petit Rintintin 805', 'offererName': 'Le Petit Rintintin Management 853', 'publicName': 'Le Petit Rintintin 805', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 305, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'postalCode': '75002', 'street': '8 Boulevard de Bercy', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'departmentCode': None, 'label': 'Accor Arena', 'id_oa': 739, 'isEditable': True, 'isManualEdition': False}}, {'hasBookingLimitDatetimesPassed': False, 'id': 301, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'The Weeknd', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 806, 'isVirtual': False, 'name': 'Le Petit Rintintin 805', 'offererName': 'Le Petit Rintintin Management 853', 'publicName': 'Le Petit Rintintin 805', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 305, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'postalCode': '75002', 'street': '8 Boulevard de Bercy', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'departmentCode': None, 'label': 'Accor Arena', 'id_oa': 739, 'isEditable': True, 'isManualEdition': False}}] == [{'hasBookingLimitDatetimesPassed': False, 'id': 302, 'isActive': True, 'isEditable': True, 'isEducational': False, 'isEvent': True, 'isShowcase': False, 'isThing': False, 'name': 'Taylor Swift', 'productIsbn': None, 'status': 'SOLD_OUT', 'stocks': [], 'subcategoryId': 'CONCERT', 'thumbUrl': None, 'venue': {'id': 806, 'isVirtual': False, 'name': 'Le Petit Rintintin 805', 'offererName': 'Le Petit Rintintin Management 853', 'publicName': 'Le Petit Rintintin 805', 'departementCode': '75'}, 'address': {'id': 305, 'id_oa': 739, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'label': 'Accor Arena', 'street': '8 Boulevard de Bercy', 'postalCode': '75002', 'city': 'Paris', 'departmentCode': '75', 'isEditable': True, 'isManualEdition': False, 'latitude': 48.87055, 'longitude': 2.34765}}, {'hasBookingLimitDatetimesPassed': False, 'id': 301, 'isActive': True, 'isEditable': True, 'isEducational': False, 'isEvent': True, 'isShowcase': False, 'isThing': False, 'name': 'The Weeknd', 'productIsbn': None, 'status': 'SOLD_OUT', 'stocks': [], 'subcategoryId': 'CONCERT', 'thumbUrl': None, 'venue': {'id': 806, 'isVirtual': False, 'name': 'Le Petit Rintintin 805', 'offererName': 'Le Petit Rintintin Management 853', 'publicName': 'Le Petit Rintintin 805', 'departementCode': '75'}, 'address': {'id': 305, 'id_oa': 739, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'label': 'Accor Arena', 'street': '8 Boulevard de Bercy', 'postalCode': '75002', 'city': 'Paris', 'departmentCode': '75', 'isEditable': True, 'isManualEdition': False, 'latitude': 48.87055, 'longitude': 2.34765}}] At index 0 diff: {'hasBookingLimitDatetimesPassed': False, 'id': 302, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'Taylor Swift', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 806, 'isVirtual': False, 'name': 'Le Petit Rintintin 805', 'offererName': 'Le Petit Rintintin Management 853', 'publicName': 'Le Petit Rintintin 805', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 305, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'postalCode': '75002', 'street': '8 Boulevard de Bercy', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'departmentCode': None, 'label': 'Accor Arena', 'id_oa': 739, 'isEditable': True, 'isManualEdition': False}} != {'hasBookingLimitDatetimesPassed': False, 'id': 302, 'isActive': True, 'isEditable': True, 'isEducational': False, 'isEvent': True, 'isShowcase': False, 'isThing': False, 'name': 'Taylor Swift', 'productIsbn': None, 'status': 'SOLD_OUT', 'stocks': [], 'subcategoryId': 'CONCERT', 'thumbUrl': None, 'venue': {'id': 806, 'isVirtual': False, 'name': 'Le Petit Rintintin 805', 'offererName': 'Le Petit Rintintin Management 853', 'publicName': 'Le Petit Rintintin 805', 'departementCode': '75'}, 'address': {'id': 305, 'id_oa': 739, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'label': 'Accor Arena', 'street': '8 Boulevard de Bercy', 'postalCode': '75002', 'city': 'Paris', 'departmentCode': '75', 'isEditable': True, 'isManualEdition': False, 'latitude': 48.87055, 'longitude': 2.34765}} Full diff: [ { 'address': { 'banId': '75112_0877_00008', 'city': 'Paris', - 'departmentCode': '75', ? ^^^^ + 'departmentCode': None, ? ^^^^ 'id': 305, 'id_oa': 739, 'inseeCode': '75112', 'isEditable': True, 'isManualEdition': False, 'label': 'Accor Arena', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '8 Boulevard de Bercy', }, 'hasBookingLimitDatetimesPassed': False, 'id': 302, 'isActive': True, 'isEditable': True, 'isEducational': False, 'isEvent': True, 'isShowcase': False, 'isThing': False, 'name': 'Taylor Swift', 'productIsbn': None, 'status': 'SOLD_OUT', 'stocks': [], 'subcategoryId': 'CONCERT', 'thumbUrl': None, 'venue': { 'departementCode': '75', 'id': 806, 'isVirtual': False, 'name': 'Le Petit Rintintin 805', 'offererName': 'Le Petit Rintintin Management 853', 'publicName': 'Le Petit Rintintin 805', }, }, { 'address': { 'banId': '75112_0877_00008', 'city': 'Paris', - 'departmentCode': '75', ? ^^^^ + 'departmentCode': None, ? ^^^^ 'id': 305, 'id_oa': 739, 'inseeCode': '75112', 'isEditable': True, 'isManualEdition': False, 'label': 'Accor Arena', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '8 Boulevard de Bercy', }, 'hasBookingLimitDatetimesPassed': False, 'id': 301, 'isActive': True, 'isEditable': True, 'isEducational': False, 'isEvent': True, 'isShowcase': False, 'isThing': False, 'name': 'The Weeknd', 'productIsbn': None, 'status': 'SOLD_OUT', 'stocks': [], 'subcategoryId': 'CONCERT', 'thumbUrl': None, 'venue': { 'departementCode': '75', 'id': 806, 'isVirtual': False, 'name': 'Le Petit Rintintin 805', 'offererName': 'Le Petit Rintintin Management 853', 'publicName': 'Le Petit Rintintin 805', }, }, ]
tests/routes/pro/get_offers_test.py.should_return_offer_with_address_of_oa: tests/routes/pro/get_offers_test.py#L611
AssertionError: assert [{'hasBookingLimitDatetimesPassed': False, 'id': 304, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'The Weeknd', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 807, 'isVirtual': False, 'name': 'Le Petit Rintintin 806', 'offererName': 'Le Petit Rintintin Management 854', 'publicName': 'Le Petit Rintintin 806', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 307, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'postalCode': '75002', 'street': '8 Boulevard de Bercy', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'departmentCode': None, 'label': 'Accor Arena', 'id_oa': 742, 'isEditable': True, 'isManualEdition': False}}] == [{'hasBookingLimitDatetimesPassed': False, 'id': 304, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'The Weeknd', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 807, 'isVirtual': False, 'name': 'Le Petit Rintintin 806', 'offererName': 'Le Petit Rintintin Management 854', 'publicName': 'Le Petit Rintintin 806', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 307, 'id_oa': 742, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'label': 'Accor Arena', 'street': '8 Boulevard de Bercy', 'postalCode': '75002', 'city': 'Paris', 'departmentCode': '75', 'isEditable': True, 'isManualEdition': False, 'latitude': 48.87055, 'longitude': 2.34765}}] At index 0 diff: {'hasBookingLimitDatetimesPassed': False, 'id': 304, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'The Weeknd', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 807, 'isVirtual': False, 'name': 'Le Petit Rintintin 806', 'offererName': 'Le Petit Rintintin Management 854', 'publicName': 'Le Petit Rintintin 806', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 307, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'postalCode': '75002', 'street': '8 Boulevard de Bercy', 'city': 'Paris', 'latitude': 48.87055, 'longitude': 2.34765, 'departmentCode': None, 'label': 'Accor Arena', 'id_oa': 742, 'isEditable': True, 'isManualEdition': False}} != {'hasBookingLimitDatetimesPassed': False, 'id': 304, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'The Weeknd', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 807, 'isVirtual': False, 'name': 'Le Petit Rintintin 806', 'offererName': 'Le Petit Rintintin Management 854', 'publicName': 'Le Petit Rintintin 806', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 307, 'id_oa': 742, 'banId': '75112_0877_00008', 'inseeCode': '75112', 'label': 'Accor Arena', 'street': '8 Boulevard de Bercy', 'postalCode': '75002', 'city': 'Paris', 'departmentCode': '75', 'isEditable': True, 'isManualEdition': False, 'latitude': 48.87055, 'longitude': 2.34765}} Full diff: [ { 'address': { 'banId': '75112_0877_00008', 'city': 'Paris', - 'departmentCode': '75', ? ^^^^ + 'departmentCode': None, ? ^^^^ 'id': 307, 'id_oa': 742, 'inseeCode': '75112', 'isEditable': True, 'isManualEdition': False, 'label': 'Accor Arena', 'latitude': 48.87055, 'longitude': 2.34765, 'postalCode': '75002', 'street': '8 Boulevard de Bercy', }, 'hasBookingLimitDatetimesPassed': False, 'id': 304, 'isActive': True, 'isEditable': True, 'isEducational': False, 'isEvent': True, 'isShowcase': False, 'isThing': False, 'name': 'The Weeknd', 'productIsbn': None, 'status': 'SOLD_OUT', 'stocks': [], 'subcategoryId': 'CONCERT', 'thumbUrl': None, 'venue': { 'departementCode': '75', 'id': 807, 'isVirtual': False, 'name': 'Le Petit Rintintin 806', 'offererName': 'Le Petit Rintintin Management 854', 'publicName': 'Le Petit Rintintin 806', }, }, ]
tests/routes/pro/get_offers_test.py.should_return_offer_with_address_of_venue: tests/routes/pro/get_offers_test.py#L675
AssertionError: assert [{'hasBookingLimitDatetimesPassed': False, 'id': 305, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'The Weeknd', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 808, 'isVirtual': False, 'name': 'Best Place to be', 'offererName': 'Le Petit Rintintin Management 855', 'publicName': 'Best Place to be', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 308, 'banId': '75112_0877_00001', 'inseeCode': '75112', 'postalCode': '75001', 'street': '4 Boulevard de Bercy', 'city': 'Paris', 'latitude': 4.34765, 'longitude': 1.34765, 'departmentCode': None, 'label': 'Best Place to be', 'id_oa': 743, 'isEditable': False, 'isManualEdition': False}}] == [{'hasBookingLimitDatetimesPassed': False, 'id': 305, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'The Weeknd', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 808, 'isVirtual': False, 'name': 'Best Place to be', 'offererName': 'Le Petit Rintintin Management 855', 'publicName': 'Best Place to be', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 308, 'id_oa': 743, 'banId': '75112_0877_00001', 'inseeCode': '75112', 'label': 'Best Place to be', 'street': '4 Boulevard de Bercy', 'postalCode': '75001', 'city': 'Paris', 'departmentCode': '75', 'isEditable': False, 'isManualEdition': False, 'latitude': 4.34765, 'longitude': 1.34765}}] At index 0 diff: {'hasBookingLimitDatetimesPassed': False, 'id': 305, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'The Weeknd', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 808, 'isVirtual': False, 'name': 'Best Place to be', 'offererName': 'Le Petit Rintintin Management 855', 'publicName': 'Best Place to be', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 308, 'banId': '75112_0877_00001', 'inseeCode': '75112', 'postalCode': '75001', 'street': '4 Boulevard de Bercy', 'city': 'Paris', 'latitude': 4.34765, 'longitude': 1.34765, 'departmentCode': None, 'label': 'Best Place to be', 'id_oa': 743, 'isEditable': False, 'isManualEdition': False}} != {'hasBookingLimitDatetimesPassed': False, 'id': 305, 'isActive': True, 'isEditable': True, 'isEvent': True, 'isThing': False, 'isEducational': False, 'name': 'The Weeknd', 'stocks': [], 'thumbUrl': None, 'productIsbn': None, 'subcategoryId': 'CONCERT', 'venue': {'id': 808, 'isVirtual': False, 'name': 'Best Place to be', 'offererName': 'Le Petit Rintintin Management 855', 'publicName': 'Best Place to be', 'departementCode': '75'}, 'status': 'SOLD_OUT', 'isShowcase': False, 'address': {'id': 308, 'id_oa': 743, 'banId': '75112_0877_00001', 'inseeCode': '75112', 'label': 'Best Place to be', 'street': '4 Boulevard de Bercy', 'postalCode': '75001', 'city': 'Paris', 'departmentCode': '75', 'isEditable': False, 'isManualEdition': False, 'latitude': 4.34765, 'longitude': 1.34765}} Full diff: [ { 'address': { 'banId': '75112_0877_00001', 'city': 'Paris', - 'departmentCode': '75', ? ^^^^ + 'departmentCode': None, ? ^^^^ 'id': 308, 'id_oa': 743, 'inseeCode': '75112', 'isEditable': False, 'isManualEdition': False, 'label': 'Best Place to be', 'latitude': 4.34765, 'longitude': 1.34765, 'postalCode': '75001', 'street': '4 Boulevard de Bercy', }, 'hasBookingLimitDatetimesPassed': False, 'id': 305, 'isActive': True, 'isEditable': True, 'isEducational': False, 'isEvent': True, 'isShowcase': False, 'isThing': False, 'name': 'The Weeknd', 'productIsbn': None, 'status': 'SOLD_OUT', 'stocks': [], 'subcategoryId': 'CONCERT', 'thumbUrl': None, 'venue': { 'departementCode': '75', 'id': 808, 'isVirtual': False, 'name': 'Best Place to be', 'offererName': 'Le Petit Rintintin Management 855', 'publicName': 'Best Place to be', }, }, ]
tests/routes/pro/get_venue_test.py.when_user_has_rights_on_managing_offerer: tests/routes/pro/get_venue_test.py#L20
assert {'audioDisabilityCompliant': False, 'mentalDisabilityCompliant': False, 'motorDisabilityCompliant': False, 'visualDisabilityCompliant': False, 'isVirtual': False, 'name': "L'encre et la plume", 'street': '1 boulevard Poissonnière', 'bannerUrl': 'http://localhost/storage/assets/venue_default_images/mark-williams-9bNmhMKQM1Q-unsplash_1.png', 'contact': {'email': '[email protected]', 'website': 'https://my.website.com', 'phoneNumber': '+33102030405', 'socialMedias': {'instagram': 'http://instagram.com/@venue'}}, 'city': 'Paris', 'description': 'Challenge project another stand about easy add between.', 'externalAccessibilityData': {'isAccessibleMotorDisability': True, 'isAccessibleAudioDisability': True, 'isAccessibleVisualDisability': True, 'isAccessibleMentalDisability': False, 'motorDisability': {'facilities': 'Sanitaire non adapté', 'exterior': 'Chemin rendu accessible (ascenseur)', 'entrance': "Accès à l'entrée par ascenseur", 'parking': 'Stationnement adapté à proximité'}, 'audioDisability': {'deafAndHardOfHearing': ['boucle à induction magnétique portative', 'sous-titrage ou transcription simultanée']}, 'visualDisability': {'soundBeacon': 'Non renseigné', 'audioDescription': ['avec équipement occasionnel selon la programmation', "avec équipement permanent nécessitant le téléchargement d'une application sur smartphone"]}, 'mentalDisability': {'trainedPersonnel': 'Personnel non formé'}}, 'externalAccessibilityUrl': 'https://site-d-accessibilite.com/erps/accessibility-slug/', 'externalAccessibilityId': 'accessibility-slug', 'isPermanent': True, 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '75000', 'publicName': "L'encre et la plume", 'openingHours': {'MONDAY': [{'open': '14:00', 'close': '19:30'}], 'TUESDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'WEDNESDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'THURSDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'FRIDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'SATURDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'SUNDAY': None}, 'withdrawalDetails': None, 'dateCreated': '2024-09-19T07:52:39.488370Z', 'id': 889, 'bannerMeta': {'image_credit': None, 'original_image_url': None, 'crop_params': {'x_crop_percent': 0.0, 'y_crop_percent': 0.0, 'height_crop_percent': 1.0, 'width_crop_percent': 1.0}}, 'banId': '75102_7560_00001', 'bookingEmail': '[email protected]', 'comment': None, 'demarchesSimplifieesApplicationId': None, 'departementCode': '75', 'dmsToken': 'PRO-6425d712907f', 'managingOfferer': {'city': 'Paris', 'dateCreated': '2024-09-19T07:52:39.467146Z', 'demarchesSimplifieesApplicationId': None, 'id': 940, 'isValidated': True, 'name': 'Le Petit Rintintin Management 939', 'postalCode': '75000', 'siren': '000009407', 'street': '1 boulevard Poissonnière', 'allowedOnAdage': True}, 'pricingPoint': {'id': 891, 'siret': '00000940708902', 'venueName': 'Le Repos du Comptable'}, 'reimbursementPointId': 893, 'siret': '00000940708886', 'timezone': 'Europe/Paris', 'venueLabelId': None, 'venueTypeCode': 'PERFORMING_ARTS', 'collectiveDescription': 'Description du lieu', 'collectiveStudents': [], 'collectiveWebsite': None, 'collectiveDomains': [], 'collectiveInterventionArea': ['75', '92'], 'collectiveLegalStatus': None, 'collectiveNetwork': None, 'collectiveAccessInformation': None, 'collectivePhone': None, 'collectiveEmail': None, 'collectiveSubCategoryId': None, 'collectiveDmsApplications': [{'venueId': 889, 'state': 'en_construction', 'procedure': 1, 'application': 1, 'lastChangeDate': '2024-09-19T06:50:03.531088Z', 'depositDate': '2024-09-09T07:50:03.531092Z', 'expirationDate': '2025-09-19T07:50:03.531094Z', 'buildDate': '2024-09-19T06:50:03.531088Z', 'instructionDate': None, 'processingDate': None, 'userDeletionDate': None}], 'hasAdageId': True, 'adageInscriptionDate': '2023-09-20T07:52:39.484191Z', 'bankAccount': {'id': 200070, 'isActive': True, 'label': 'Libellé des coordonnées bancaires n°70', 'obfuscatedIban': 'XXXX XXXX XXXX 7039', 'bic': 'BDFEFRPP', 'dsApplicationId': 70, 'status': 'accepte', 'dateCreated': '2024-09-19T07:52:39.453080Z', 'dateLastStatusUpdate': None, 'linkedVenues': [{'id': 889, 'commonName': "L'encre et la plume"}]}, 'isVisibleInApp': True, 'hasOffers': 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': None, 'label': None, 'id_oa': 817, 'isEditable': None, 'isManualEdition': False}} == {'street': '1 boulevard Poissonnière', 'banId': '75102_7560_00001', 'audioDisabilityCompliant': False, 'bookingEmail': '[email protected]', 'city': 'Paris', 'contact': {'email': '[email protected]', 'website': 'https://my.website.com', 'phoneNumber': '+33102030405', 'socialMedias': {'instagram': 'http://instagram.com/@venue'}}, 'comment': None, 'pricingPoint': {'id': 891, 'venueName': 'Le Repos du Comptable', 'siret': '00000940708902'}, 'reimbursementPointId': 893, 'dateCreated': '2024-09-19T07:52:39.488370Z', 'demarchesSimplifieesApplicationId': None, 'departementCode': '75', 'description': 'Challenge project another stand about easy add between.', 'dmsToken': 'PRO-6425d712907f', 'externalAccessibilityData': {'isAccessibleMotorDisability': True, 'isAccessibleAudioDisability': True, 'isAccessibleVisualDisability': True, 'isAccessibleMentalDisability': False, 'motorDisability': {'facilities': 'Sanitaire non adapté', 'exterior': 'Chemin rendu accessible (ascenseur)', 'entrance': "Accès à l'entrée par ascenseur", 'parking': 'Stationnement adapté à proximité'}, 'audioDisability': {'deafAndHardOfHearing': ['boucle à induction magnétique portative', 'sous-titrage ou transcription simultanée']}, 'visualDisability': {'soundBeacon': 'Non renseigné', 'audioDescription': ['avec équipement occasionnel selon la programmation', "avec équipement permanent nécessitant le téléchargement d'une application sur smartphone"]}, 'mentalDisability': {'trainedPersonnel': 'Personnel non formé'}}, 'externalAccessibilityId': 'accessibility-slug', 'externalAccessibilityUrl': 'https://site-d-accessibilite.com/erps/accessibility-slug/', 'isPermanent': True, 'isVirtual': False, 'latitude': 48.87004, 'longitude': 2.3785, 'managingOfferer': {'city': 'Paris', 'dateCreated': '2024-09-19T07:52:39.467146Z', 'demarchesSimplifieesApplicationId': None, 'id': 940, 'isValidated': True, 'name': 'Le Petit Rintintin Management 939', 'postalCode': '75000', 'siren': '000009407', 'street': '1 boulevard Poissonnière', 'allowedOnAdage': True}, 'mentalDisabilityCompliant': False, 'motorDisabilityCompliant': False, 'name': "L'encre et la plume", 'openingHours': {'MONDAY': [{'open': '14:00', 'close': '19:30'}], 'TUESDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'WEDNESDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'THURSDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'FRIDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'SATURDAY': [{'open': '10:00', 'close': '13:00'}, {'open': '14:00', 'close': '19:30'}], 'SUNDAY': None}, 'postalCode': '75000', 'publicName': "L'encre et la plume", 'siret': '00000940708886', 'timezone': 'Europe/Paris', 'venueLabelId': None, 'venueTypeCode': 'PERFORMING_ARTS', 'visualDisabilityCompliant': False, 'withdrawalDetails': None, 'bannerUrl': 'http://localhost/storage/assets/venue_default_images/mark-williams-9bNmhMKQM1Q-unsplash_1.png', 'bannerMeta': {'crop_params': {'height_crop_percent': 1.0, 'width_crop_percent': 1.0, 'x_crop_percent': 0.0, 'y_crop_percent': 0.0}, 'image_credit': None, 'original_image_url': None}, 'id': 889, 'collectiveAccessInformation': None, 'collectiveDescription': 'Description du lieu', 'collectiveDomains': [], 'collectiveEmail': None, 'collectiveInterventionArea': ['75', '92'], 'collectiveLegalStatus': None, 'collectiveNetwork': None, 'collectivePhone': None, 'collectiveStudents': [], 'collectiveWebsite': None, 'collectiveSubCategoryId': None, 'collectiveDmsApplications': [{'venueId': 889, 'state': 'en_construction', 'procedure': 1, 'application': 1, 'lastChangeDate': '2024-09-19T06:50:03.531088Z', 'depositDate': '2024-09-09T07:50:03.531092Z', 'expirationDate': '2025-09-19T07:50:03.531094Z', 'buildDate': '2024-09-19T06:50:03.531088Z', 'instructionDate': None, 'processingDate': None, 'userDeletionDate': None}], 'hasAdageId': True, 'adageInscriptionDate': '2023-09-20T07:52:39.484191Z', 'bankAccount': {'bic': 'BDFEFRPP', 'dateCreated': '2024-09-19T07:52:39.453080Z', 'dateLastStatusUpdate': None, 'dsApplicationId': 70, 'id': 200070, 'isActive': True, 'label': 'Libellé des coordonnées bancaires n°70', 'linkedVenues': [{'commonName': "L'encre et la plume", 'id': 889}], 'obfuscatedIban': 'XXXX XXXX XXXX 7039', 'status': 'accepte'}, 'address': {'id': 287, 'street': '1 boulevard Poissonnière', 'postalCode': '75000', 'inseeCode': '75102', 'city': 'Paris', 'latitude': 48.87004, 'longitude': 2.3785, 'banId': '75102_7560_00001', 'label': None, 'id_oa': 817, 'isEditable': None, 'isManualEdition': False}, 'isVisibleInApp': True, 'hasOffers': False} Common items: {'adageInscriptionDate': '2023-09-20T07:52:39.484191Z', 'audioDisabilityCompliant': False, 'banId': '75102_7560_00001', 'bankAccount': {'bic': 'BDFEFRPP', 'dateCreated': '2024-09-19T07:52:39.453080Z', 'dateLastStatusUpdate': None, 'dsApplicationId': 70, 'id': 200070, 'isActive': True, 'label': 'Libellé des coordonnées bancaires n°70', 'linkedVenues': [{'commonName': "L'encre et la plume", 'id': 889}], 'obfuscatedIban': 'XXXX XXXX XXXX 7039', 'status': 'accepte'}, 'bannerMeta': {'crop_params': {'height_crop_percent': 1.0, 'width_crop_percent': 1.0, 'x_crop_percent': 0.0, 'y_crop_percent': 0.0}, 'image_credit': None, 'original_image_url': None}, 'bannerUrl': 'http://localhost/storage/assets/venue_default_images/mark-williams-9bNmhMKQM1Q-unsplash_1.png', 'bookingEmail': '[email protected]', 'city': 'Paris', 'collectiveAccessInformation': None, 'collectiveDescription': 'Description du lieu', 'collectiveDmsApplications': [{'application': 1, 'buildDate': '2024-09-19T06:50:03.531088Z', 'depositDate': '2024-09-09T07:50:03.531092Z', 'expirationDate': '2025-09-19T07:50:03.531094Z', 'instructionDate': None, 'lastChangeDate': '2024-09-19T06:50:03.531088Z', 'procedure': 1, 'processingDate': None, 'state': 'en_construction', 'userDeletionDate': None, 'venueId': 889}], 'collectiveDomains': [], 'collectiveEmail': None, 'collectiveInterventionArea': ['75', '92'], 'collectiveLegalStatus': None, 'collectiveNetwork': None, 'collectivePhone': None, 'collectiveStudents': [], 'collectiveSubCategoryId': None, 'collectiveWebsite': None, 'comment': None, 'contact': {'email': '[email protected]', 'phoneNumber': '+33102030405', 'socialMedias': {'instagram': 'http://instagram.com/@venue'}, 'website': 'https://my.website.com'}, 'dateCreated': '2024-09-19T07:52:39.488370Z', 'demarchesSimplifieesApplicationId': None, 'departementCode': '75', 'description': 'Challenge project another stand about easy add between.', 'dmsToken': 'PRO-6425d712907f', 'externalAccessibilityData': {'audioDisability': {'deafAndHardOfHearing': ['boucle ' 'à ' 'induction ' 'magnétique ' 'portative', 'sous-titrage ' 'ou ' 'transcription ' 'simultanée']}, 'isAccessibleAudioDisability': True, 'isAccessibleMentalDisability': False, 'isAccessibleMotorDisability': True, 'isAccessibleVisualDisability': True, 'mentalDisability': {'trainedPersonnel': 'Personnel ' 'non ' 'formé'}, 'motorDisability': {'entrance': 'Accès à ' "l'entrée par " 'ascenseur', 'exterior': 'Chemin rendu ' 'accessible ' '(ascenseur)', 'facilities': 'Sanitaire ' 'non adapté', 'parking': 'Stationnement ' 'adapté à ' 'proximité'}, 'visualDisability': {'audioDescription': ['avec ' 'équipement ' 'occasionnel ' 'selon ' 'la ' 'programmation', 'avec ' 'équipement ' 'permanent ' 'nécessitant ' 'le ' 'téléchargement ' "d'une " 'application ' 'sur ' 'smartphone'], 'soundBeacon': 'Non ' 'renseigné'}}, 'externalAccessibilityId': 'accessibility-slug', 'externalAccessibilityUrl': 'https://site-d-accessibilite.com/erps/accessibility-slug/', 'hasAdageId': True, 'hasOffers': False, 'id': 889, 'isPermanent': True, 'isVirtual': False, 'isVisibleInApp': True, 'latitude': 48.87004, 'longitude': 2.3785, 'managingOfferer': {'allowedOnAdage': True, 'city': 'Paris', 'dateCreated': '2024-09-19T07:52:39.467146Z', 'demarchesSimplifieesApplicationId': None, 'id': 940, 'isValidated': True, 'name': 'Le Petit Rintintin Management 939', 'postalCode': '75000', 'siren': '000009407', 'street': '1 boulevard Poissonnière'}, 'mentalDisabilityCompliant': False, 'motorDisabilityCompliant': False, 'name': "L'encre et la plume", 'openingHours': {'FRIDAY': [{'close': '13:00', 'open': '10:00'}, {'close': '19:30', 'open': '14:00'}], 'MONDAY': [{'close': '19:30', 'open': '14:00'}], 'SATURDAY': [{'close': '13:00', 'open': '10:00'}, {'close': '19:30', 'open': '14:00'}], 'SUNDAY': None, 'THURSDAY': [{'close': '13:00', 'open': '10:00'}, {'close': '19:30', 'open': '14:00'}], 'TUESDAY': [{'close': '13:00', 'open': '10:00'}, {'close': '19:30', 'open': '14:00'}], 'WEDNESDAY': [{'close': '13:00', 'open': '10:00'}, {'close': '19:30', 'open': '14:00'}]}, 'postalCode': '75000', 'pricingPoint': {'id': 891, 'siret': '00000940708902', 'venueName': 'Le Repos du Comptable'}, 'publicName': "L'encre et la plume", 'reimbursementPointId': 893, 'siret': '00000940708886', 'street': '1 boulevard Poissonnière', 'timezone': 'Europe/Paris', 'venueLabelId': None, 'venueTypeCode': 'PERFORMING_ARTS', 'visualDisabilityCompliant': False, 'withdrawalDetails': None} Differing items: {'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'departmentCode': None, 'id': 287, ...}} != {'address': {'banId': '75102_7560_00001', 'city': 'Paris', 'id': 287, 'id_oa': 817, ...}} Full diff: { 'adageInscriptionDate': '2023-09-20T07:52:39.484191Z', 'address': { 'banId': '75102_7560_00001', 'city': 'Paris', + 'departmentCode': None, 'id': 287, 'id_oa': 817, 'inseeCode': '75102', 'isEditable': None, 'isManualEdition': False, 'label': None, 'latitude': 48.87004, 'longitude': 2.3785, 'postalCode': '75000', 'street': '1 boulevard Poissonnière', }, 'audioDisabilityCompliant': False, 'banId': '75102_7560_00001', 'bankAccount': { 'bic': 'BDFEFRPP', 'dateCreated': '2024-09-19T07:52:39.453080Z', 'dateLastStatusUpdate': None, 'dsApplicationId': 70, 'id': 200070, 'isActive': True, 'label': 'Libellé des coordonnées bancaires n°70', 'linkedVenues': [ { 'commonName': "L'encre et la plume", 'id': 889, }, ], 'obfuscatedIban': 'XXXX XXXX XXXX 7039', 'status': 'accepte', }, 'bannerMeta': { 'crop_params': { 'height_crop_percent': 1.0, 'width_crop_percent': 1.0, 'x_crop_percent': 0.0, 'y_crop_percent': 0.0, }, 'image_credit': None, 'original_image_url': None, }, 'bannerUrl': 'http://localhost/storage/assets/venue_default_images/mark-williams-9bNmhMKQM1Q-unsplash_1.png', 'bookingEmail': '[email protected]', 'city': 'Paris', 'collectiveAccessInformation': None, 'collectiveDescription': 'Description du lieu', 'collectiveDmsApplications': [ { 'application': 1, 'buildDate': '2024-09-19T06:50:03.531088Z', 'depositDate': '2024-09-09T07:50:03.531092Z', 'expirationDate': '2025-09-19T07:50:03.531094Z', 'instructionDate': None, 'lastChangeDate': '2024-09-19T06:50:03.531088Z', 'procedure': 1, 'processingDate': None, 'state': 'en_construction', 'userDeletionDate': None, 'venueId': 889, }, ], 'collectiveDomains': [], 'collectiveEmail': None, 'collectiveInterventionArea': [ '75', '92', ], 'collectiveLegalStatus': None, 'collectiveNetwork': None, 'collectivePhone': None, 'collectiveStudents': [], 'collectiveSubCategoryId': None, 'collectiveWebsite': None, 'comment': None, 'contact': { 'email': '[email protected]', 'phoneNumber': '+33102030405', 'socialMedias': { 'instagram': 'http://instagram.com/@venue', }, 'website': 'https://my.website.com', }, 'dateCreated': '2024-09-19T07:52:39.488370Z', 'demarchesSimplifieesApplicationId': None, 'departementCode': '75', 'description': 'Challenge project another stand about easy add between.', 'dmsToken': 'PRO-6425d712907f', 'externalAccessibilityData': { 'audioDisability': { 'deafAndHardOfHearing': [ 'boucle à induction magnétique portative', 'sous-titrage ou transcription simultanée', ], }, 'isAccessibleAudioDisability': True, 'isAccessibleMentalDisability': False, 'isAccessibleMotorDisability': True, 'isAccessibleVisualDisability': True, 'mentalDisability': { 'trainedPersonnel': 'Personnel non formé', }, 'motorDisability': { 'entrance': "Accès à l'entrée par ascenseur", 'exterior': 'Chemin rendu accessible (ascenseur)', 'facilities': 'Sanitaire non adapté', 'parking': 'Stationnement adapté à proximité', }, 'visualDisability': { 'audioDescription': [ 'avec équipement occasionnel selon la programmation', "avec équipement permanent nécessitant le téléchargement d'une " 'application sur smartphone', ], 'soundBeacon': 'Non renseigné', }, }, 'externalAccessibilityId': 'accessibility-slug', 'externalAccessibilityUrl': 'https://site-d-accessibilite.com/erps/accessibility-slug/', 'hasAdageId': True, 'hasOffers': False, 'id': 889, 'isPermanent': True, 'isVirtual': False, 'isVisibleInApp': True, 'latitude': 48.87004, 'longitude': 2.3785, 'managingOfferer': { 'allowedOnAdage': True, 'city': 'Paris', 'dateCreated': '2024-09-19T07:52:39.467146Z', 'demarchesSimplifieesApplicationId': None, 'id': 940, 'isValidated': True, 'name': 'Le Petit Rintintin Management 939', 'postalCode': '75000', 'siren': '000009407', 'street': '1 boulevard Poissonnière', }, 'mentalDisabilityCompliant': False, 'motorDisabilityCompliant': False, 'name': "L'encre et la plume", 'openingHours': { 'FRIDAY': [ { 'close': '13:00', 'open': '10:00', }, { 'close': '19:30', 'open': '14:00', }, ], 'MONDAY': [ { 'close': '19:30', 'open': '14:00', }, ], 'SATURDAY': [ { 'close': '13:00', 'open': '10:00', }, { 'close': '19:30', 'open': '14:00', }, ], 'SUNDAY': None, 'THURSDAY': [ { 'close': '13:00', 'open': '10:00', }, { 'close': '19:30', 'open': '14:00', }, ], 'TUESDAY': [ { 'close': '13:00', 'open': '10:00', }, { 'close': '19:30', 'open': '14:00', }, ], 'WEDNESDAY': [ { 'close': '13:00', 'open': '10:00', }, { 'close': '19:30', 'open': '14:00', }, ], }, 'postalCode': '75000', 'pricingPoint': { 'id': 891, 'siret': '00000940708902', 'venueName': 'Le Repos du Comptable', }, 'publicName': "L'encre et la plume", 'reimbursementPointId': 893, 'siret': '00000940708886', 'street': '1 boulevard Poissonnière', 'timezone': 'Europe/Paris', 'venueLabelId': None, 'venueTypeCode': 'PERFORMING_ARTS', 'visualDisabilityCompliant': False, 'withdrawalDetails': None, }
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 0x7fbbd7faf190>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbd7faf190> = <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, 7, 53, 37, 408923), '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 0x7fbbd7c9f2d0>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '01000', '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, 7, 53, 37, 681219), '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 0x7fbbd7579dd0>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '46137', '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, 7, 53, 37, 944571), '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 0x7fbbd744efd0>, 'phoneNumber': None, 'phoneValidationStatus': None, 'postalCode': '51065', '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 0x7fbbdc034e50>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbdc034e50> = <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 0x7fbbdde2e110>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbdde2e110> = <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 0x7fbbd8cc6110>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbd8cc6110> = <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 0x7fbbd8c94e50>.count + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbd8c94e50> = <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 #317>, <Stock #166>]) + where [<Stock #317>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7fbbdde02b50>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbdde02b50> = 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 #318>, <Stock #166>]) + where [<Stock #318>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7fbbdc1aed10>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbdc1aed10> = 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 #319>, <Stock #320>, <Stock #321>])
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 #322>, <Stock #324>, <Stock #323>])
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 #325>, <Stock #166>]) + where [<Stock #325>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7fbbdbbe9f50>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbdbbe9f50> = 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 #329>, <Stock #166>]) + where [<Stock #329>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7fbbdc094790>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbdc094790> = 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 #330>, <Stock #166>]) + where [<Stock #330>, <Stock #166>] = all() + where all = <pcapi.models.pc_object.BaseQuery object at 0x7fbbdc0edd50>.all + where <pcapi.models.pc_object.BaseQuery object at 0x7fbbdc0edd50> = 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 46 failures
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:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
Tests api / Quality checks
Running tests api with europe-west1-docker.pkg.dev/passculture-infra-prod/pass-culture-artifact-registry/pcapi-tests:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
Tests pro E2E / E2E tests and notifications
Running e2e-tests with europe-west1-docker.pkg.dev/passculture-infra-prod/pass-culture-artifact-registry/pcapi:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
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 / 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 --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 --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 --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 --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/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/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/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/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 / 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 / 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/
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 / 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/

Artifacts

Produced during runtime
Name Size
pass-culture~pass-culture-main~9COSDT.dockerbuild
80.3 KB
pass-culture~pass-culture-main~HT8QW3.dockerbuild
91.8 KB
pass-culture~pass-culture-main~PTI1S9.dockerbuild
157 KB
pcapi-a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29.tar Expired
295 MB
pcapi-console-a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29.tar Expired
469 MB
pcapi-tests-a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29.tar Expired
526 MB