(PC-31051)[BO] feat: add ff WIP_DISABLE_NOTIFICATION_CANCEL_BOOKING_C… #4715
dev_on_pull_request_workflow.yml
on: pull_request
Init job
46s
Tests pro
/
...
/
Style quality check
Tests pro
/
Unit tests
[pcapi-tests] build docker image.
/
Build pcapi-tests:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
3m 46s
[pcapi] build docker image.
/
Build pcapi:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
2m 18s
[pcapi-console] build docker image.
/
Build pcapi-console:a4ed353e21c327b30fbf6c8017f6ea2d8e0acd29
3m 26s
MyPy cop
/
MyPy cop test
31s
Tests API documentation
/
Check API documentation can be built
[PRO] Deploy PR version for validation
/
deploy_on_firebase
Dependabot
/
dependabot
Matrix: Tests api / Pytest
Tests api
/
Quality checks
2m 37s
Tests api
/
Pylint
5m 33s
Tests api
/
Test database schema
2m 41s
Update api client template
/
Update API Client template
1m 55s
Push pcapi docker image to registry
/
push-docker-image
Push pcapi-console docker image to registry
/
push-docker-image
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_reimbursements_csv_test.py.test_with_offer_address_and_venue_address[True-2-1 rue de la paix 75002 Paris0]:
tests/routes/pro/get_reimbursements_csv_test.py#L493
assert 2 == 1
+ where 2 = len([<Booking #117>, <Booking #67>])
|
tests/routes/pro/get_reimbursements_csv_test.py.test_with_offer_address_and_venue_address[False-1-1 boulevard Poissonni\xe8re 75000 Paris]:
tests/routes/pro/get_reimbursements_csv_test.py#L493
assert 2 == 1
+ where 2 = len([<Booking #118>, <Booking #67>])
|
tests/routes/pro/get_reimbursements_csv_test.py.test_with_offer_address_and_venue_address[True-2-1 rue de la paix 75002 Paris1]:
tests/routes/pro/get_reimbursements_csv_test.py#L493
assert 2 == 1
+ where 2 = len([<Booking #119>, <Booking #67>])
|
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_upsert_multiple_stocks:
tests/routes/pro/post_stocks_test.py#L419
IndexError: list index out of range
|
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 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 --ignore=tests/core/bookings --ignore=tests/core/offers --ignore=tests/core/fi...
The following actions use a deprecated Node.js version and will be forced to run on node20: docker/login-action@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Tests api / Pytest (tests/core --ignore=tests/core/bookings --ignore=tests/core/offers --ignore=tests/core/fi...
The `save-state` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
Tests api / Pytest (tests/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 |
|