From b31fdca70c48b0fd486462dbe199a1837570690d Mon Sep 17 00:00:00 2001 From: xordoquy-pass <185769711+xordoquy-pass@users.noreply.github.com> Date: Tue, 7 Jan 2025 22:52:28 +0100 Subject: [PATCH] (PC-33280)[API] test: explicitly add OA specific data in tests --- api/tests/core/bookings/test_repository.py | 125 ++---------------- api/tests/core/external/external_pro_test.py | 5 + api/tests/core/offerers/test_repository.py | 2 +- api/tests/core/offers/test_api.py | 4 +- api/tests/core/offers/test_validation.py | 7 +- api/tests/core/search/test_backend_algolia.py | 12 +- .../core/search/test_serialize_algolia.py | 3 +- 7 files changed, 35 insertions(+), 123 deletions(-) diff --git a/api/tests/core/bookings/test_repository.py b/api/tests/core/bookings/test_repository.py index 9707342235f..33eac695e91 100644 --- a/api/tests/core/bookings/test_repository.py +++ b/api/tests/core/bookings/test_repository.py @@ -1318,6 +1318,8 @@ def should_consider_venue_locale_datetime_when_filtering_by_booking_period(self, offer_in_cayenne = offers_factories.OfferFactory( venue__postalCode="97300", + venue__offererAddress__address__street="1 Rue de Rémire", + venue__offererAddress__address__city="Cayenne", venue__offererAddress__address__postalCode="97300", venue__managingOfferer=user_offerer.offerer, ) @@ -1331,6 +1333,8 @@ def should_consider_venue_locale_datetime_when_filtering_by_booking_period(self, offer_in_mayotte = offers_factories.OfferFactory( venue__postalCode="97600", + venue__offererAddress__address__street="Boulevard Halidi Sélémani", + venue__offererAddress__address__city="Mamoudzou", venue__offererAddress__address__postalCode="97600", venue__managingOfferer=user_offerer.offerer, ) @@ -4170,43 +4174,6 @@ def should_consider_venue_locale_datetime_when_filtering_by_event_date(self, app user_offerer = offerers_factories.UserOffererFactory() event_datetime = datetime(2020, 4, 21, 20, 00) - offer_in_cayenne = offers_factories.OfferFactory( - venue__postalCode="97300", venue__managingOfferer=user_offerer.offerer, offererAddress=None - ) - cayenne_event_datetime = datetime(2020, 4, 22, 2, 0) - stock_in_cayenne = offers_factories.EventStockFactory( - offer=offer_in_cayenne, beginningDatetime=cayenne_event_datetime - ) - cayenne_booking = bookings_factories.BookingFactory(stock=stock_in_cayenne) - - offer_in_mayotte = offers_factories.OfferFactory( - venue__postalCode="97600", venue__managingOfferer=user_offerer.offerer - ) - mayotte_event_datetime = datetime(2020, 4, 20, 22, 0) - stock_in_mayotte = offers_factories.EventStockFactory( - offer=offer_in_mayotte, beginningDatetime=mayotte_event_datetime - ) - mayotte_booking = bookings_factories.BookingFactory(stock=stock_in_mayotte) - - bookings_csv = booking_repository.get_export( - user=user_offerer.user, - booking_period=(one_year_before_booking, one_year_after_booking), - event_date=event_datetime.date(), - ) - - headers, *data = csv.reader(StringIO(bookings_csv), delimiter=";") - assert len(data) == 2 - data_dicts = [dict(zip(headers, line)) for line in data] - tokens = [booking["Contremarque"] for booking in data_dicts] - assert sorted(tokens) == sorted([cayenne_booking.token, mayotte_booking.token]) - - def should_consider_venue_locale_datetime_when_filtering_by_event_date_with_offerer_address_as_data_source( - self, app: fixture - ): - - user_offerer = offerers_factories.UserOffererFactory() - event_datetime = datetime(2020, 4, 21, 20, 00) - offer_in_cayenne = offers_factories.OfferFactory( venue__postalCode="97300", venue__managingOfferer=user_offerer.offerer, @@ -4311,49 +4278,10 @@ def test_should_consider_venue_locale_datetime_when_filtering_by_booking_period( offer_in_cayenne = offers_factories.OfferFactory( venue__postalCode="97300", + venue__offererAddress__address__street="1 Rue de Rémire", + venue__offererAddress__address__city="Cayenne", + venue__offererAddress__address__postalCode="97300", venue__managingOfferer=user_offerer.offerer, - offererAddress=None, - ) - cayenne_booking_datetime = datetime(2020, 4, 22, 2, 0) - stock_in_cayenne = offers_factories.EventStockFactory( - offer=offer_in_cayenne, - ) - cayenne_booking = bookings_factories.BookingFactory( - stock=stock_in_cayenne, dateCreated=cayenne_booking_datetime - ) - - offer_in_mayotte = offers_factories.OfferFactory( - venue__postalCode="97600", venue__managingOfferer=user_offerer.offerer - ) - mayotte_booking_datetime = datetime(2020, 4, 20, 23, 0) - stock_in_mayotte = offers_factories.EventStockFactory( - offer=offer_in_mayotte, - ) - mayotte_booking = bookings_factories.BookingFactory( - stock=stock_in_mayotte, dateCreated=mayotte_booking_datetime - ) - - bookings_csv = booking_repository.get_export( - user=user_offerer.user, - booking_period=(requested_booking_period_beginning, requested_booking_period_ending), - ) - - headers, *data = csv.reader(StringIO(bookings_csv), delimiter=";") - assert len(data) == 2 - data_dicts = [dict(zip(headers, line)) for line in data] - tokens = [booking["Contremarque"] for booking in data_dicts] - assert sorted(tokens) == sorted([cayenne_booking.token, mayotte_booking.token]) - - def test_should_consider_venue_locale_datetime_when_filtering_by_booking_period_with_offerer_address_as_data_source( - self, app: fixture - ): - - user_offerer = offerers_factories.UserOffererFactory() - requested_booking_period_beginning = datetime(2020, 4, 21, 20, 00).date() - requested_booking_period_ending = datetime(2020, 4, 22, 20, 00).date() - - offer_in_cayenne = offers_factories.OfferFactory( - venue__postalCode="97300", venue__managingOfferer=user_offerer.offerer ) cayenne_booking_datetime = datetime(2020, 4, 22, 2, 0) stock_in_cayenne = offers_factories.EventStockFactory( @@ -4365,6 +4293,8 @@ def test_should_consider_venue_locale_datetime_when_filtering_by_booking_period_ offer_in_mayotte = offers_factories.OfferFactory( venue__postalCode="97600", + venue__offererAddress__address__street="Boulevard Halidi Sélémani", + venue__offererAddress__address__city="Mamoudzou", venue__offererAddress__address__postalCode="97600", venue__managingOfferer=user_offerer.offerer, ) @@ -4387,7 +4317,6 @@ def test_should_consider_venue_locale_datetime_when_filtering_by_booking_period_ tokens = [booking["Contremarque"] for booking in data_dicts] assert sorted(tokens) == sorted([cayenne_booking.token, mayotte_booking.token]) - @pytest.mark.features(WIP_USE_OFFERER_ADDRESS_AS_DATA_SOURCE=False, WIP_ENABLE_OFFER_ADDRESS=False) def test_should_output_the_correct_offer_type_depending_wether_offer_educational_or_not(self, app: fixture): pro = users_factories.ProFactory() @@ -4422,42 +4351,6 @@ def test_should_output_the_correct_offer_type_depending_wether_offer_educational offer_name = data_dict["Nom de l’offre"] assert data_dict["Type d'offre"] == expected_type[offer_name] - def test_should_output_the_correct_offer_type_depending_wether_offer_educational_or_not_with_offerer_address_as_data_source( - self, app: fixture - ): - - pro = users_factories.ProFactory() - offerer = offerers_factories.OffererFactory() - offerers_factories.UserOffererFactory(user=pro, offerer=offerer) - venue = offerers_factories.VenueFactory(managingOfferer=offerer) - - booking_1 = bookings_factories.BookingFactory( - stock__offer__venue=venue, - ) - - booking_2 = bookings_factories.UsedBookingFactory( - stock__offer__venue=venue, - ) - - beginning_period = datetime.fromisoformat("2021-10-15") - ending_period = datetime.fromisoformat("2032-02-15") - bookings_csv = booking_repository.get_export( - user=pro, - booking_period=(beginning_period, ending_period), - ) - - expected_type = { - booking_1.stock.offer.name: "offre grand public", - booking_2.stock.offer.name: "offre grand public", - } - - headers, *data = csv.reader(StringIO(bookings_csv), delimiter=";") - assert len(data) == 2 - data_dicts = [dict(zip(headers, line)) for line in data] - for data_dict in data_dicts: - offer_name = data_dict["Nom de l’offre"] - assert data_dict["Type d'offre"] == expected_type[offer_name] - @pytest.mark.features(WIP_USE_OFFERER_ADDRESS_AS_DATA_SOURCE=False, WIP_ENABLE_OFFER_ADDRESS=False) def test_should_return_only_bookings_for_requested_offer_type(self, app: fixture): diff --git a/api/tests/core/external/external_pro_test.py b/api/tests/core/external/external_pro_test.py index e246cf112ea..a1d61ef9bcf 100644 --- a/api/tests/core/external/external_pro_test.py +++ b/api/tests/core/external/external_pro_test.py @@ -113,6 +113,7 @@ def test_update_external_pro_user_attributes( venue1 = offerers_factories.VenueFactory( managingOfferer=offerer1, name="Cinéma de la plage", + street="Rue des étoiles", departementCode="06", postalCode="06590", city="Théoule-sur-mer", @@ -130,6 +131,7 @@ def test_update_external_pro_user_attributes( venue1b = offerers_factories.VenueFactory( managingOfferer=offerer1, name="Théâtre de la plage", + street="Rue des molières", departementCode="06", postalCode="06590", city="Théoule-sur-mer", @@ -178,6 +180,7 @@ def test_update_external_pro_user_attributes( venue3 = offerers_factories.VenueFactory( managingOfferer=offerer3, name="Festival de la mer", + street="Promenade de l'ire landaise", departementCode="83", postalCode="83700", city="Saint-Raphaël", @@ -213,6 +216,7 @@ def test_update_external_pro_user_attributes( venue4 = offerers_factories.VenueFactory( managingOfferer=offerer4, name="Librairie du port", + street="Rue du phare à éon", departementCode="13", postalCode="13260", city="Cassis", @@ -253,6 +257,7 @@ def test_update_external_pro_user_attributes( offerers_factories.VenueFactory( managingOfferer=inactive_offerer, name="Salle de concert des calanques", + street="Rue des myrtilles", departementCode="13", # different from others postalCode="13260", city="Cassis", diff --git a/api/tests/core/offerers/test_repository.py b/api/tests/core/offerers/test_repository.py index 1e187107b4a..6051340133d 100644 --- a/api/tests/core/offerers/test_repository.py +++ b/api/tests/core/offerers/test_repository.py @@ -242,7 +242,7 @@ def test_get_offerer_addresses(self): offerers_factories.OffererAddressFactory( offerer=offerer, label="1ere adresse", - address__street="1 boulevard Poissonnière", + address__street="1 boulevard des Poissons", address__postalCode="75002", address__city="Paris", ) diff --git a/api/tests/core/offers/test_api.py b/api/tests/core/offers/test_api.py index cdb36676e3d..ef88c2b08aa 100644 --- a/api/tests/core/offers/test_api.py +++ b/api/tests/core/offers/test_api.py @@ -1959,7 +1959,7 @@ def test_update_offerer_address(self): new_offerer_address = offerers_factories.OffererAddressFactory( address__latitude=50.63153, address__longitude=3.06089, - address__postalCode=59000, + address__postalCode="59000", address__city="Lille", ) offer = factories.OfferFactory() @@ -1977,7 +1977,7 @@ def test_update_both_venue_and_offerer_address(self): new_offerer_address = offerers_factories.OffererAddressFactory( address__latitude=50.63153, address__longitude=3.06089, - address__postalCode=59000, + address__postalCode="59000", address__city="Lille", ) offer = factories.OfferFactory() diff --git a/api/tests/core/offers/test_validation.py b/api/tests/core/offers/test_validation.py index 09a14289845..1c66e3d7097 100644 --- a/api/tests/core/offers/test_validation.py +++ b/api/tests/core/offers/test_validation.py @@ -829,13 +829,16 @@ def test_check_booking_limit_datetime_should_not_raise_with_timezone(self, offer ) def test_check_booking_limit_datetime_priorisation_order(self, time_zone_expected): oa = ( - offerers_factories.OffererAddressFactory(address__departmentCode="974") + offerers_factories.OffererAddressFactory(address__departmentCode="974", address__inseeCode="97410") if time_zone_expected == ZoneInfo("Indian/Reunion") else None ) if time_zone_expected in [ZoneInfo("Indian/Reunion"), ZoneInfo("America/Guadeloupe")]: venue = offerers_factories.VenueFactory( - departementCode=71, offererAddress__address__departmentCode="971" + departementCode=71, + offererAddress__address__departmentCode="971", + offererAddress__address__inseeCode="97103", + offererAddress__address__timezone="America/Guadeloupe", ) # oa guadeloupe venue#france else: venue = offerers_factories.VirtualVenueFactory(departementCode=71) diff --git a/api/tests/core/search/test_backend_algolia.py b/api/tests/core/search/test_backend_algolia.py index 3d16102adcc..9224a4b212d 100644 --- a/api/tests/core/search/test_backend_algolia.py +++ b/api/tests/core/search/test_backend_algolia.py @@ -244,18 +244,28 @@ def test_index_collective_offers_templates(): assert posted_json["requests"][2]["body"]["venue"]["departmentCode"] == "2A" -@pytest.mark.features(WIP_USE_OFFERER_ADDRESS_AS_DATA_SOURCE=False) +@pytest.mark.features(WIP_USE_OFFERER_ADDRESS_AS_DATA_SOURCE=False, WIP_ENABLE_OFFER_ADDRESS=False) def test_index_collective_offers_templates_legacy(): # Same as test_index_collective_offers_templates backend = get_backend() collective_offer_template = educational_factories.CollectiveOfferTemplateFactory.build() + offerer_address_north_corsica = offerers_factories.OffererAddressFactory( + address__departmentCode=20, + address__postalCode="20213", + ) + offerer_address_south_corsica = offerers_factories.OffererAddressFactory( + address__departmentCode=20, + address__postalCode="20113", + ) collective_offer_template_north_corsica = educational_factories.CollectiveOfferTemplateFactory( venue__departementCode=20, venue__postalCode="20213", + venue__offererAddress=offerer_address_north_corsica, ) collective_offer_template_south_corsica = educational_factories.CollectiveOfferTemplateFactory( venue__departementCode=20, venue__postalCode="20113", + venue__offererAddress=offerer_address_south_corsica, ) with requests_mock.Mocker() as mock: diff --git a/api/tests/core/search/test_serialize_algolia.py b/api/tests/core/search/test_serialize_algolia.py index 9eb92054fe5..cd6b78db02b 100644 --- a/api/tests/core/search/test_serialize_algolia.py +++ b/api/tests/core/search/test_serialize_algolia.py @@ -521,7 +521,7 @@ def test_serialize_collective_offer_template(): } -@pytest.mark.features(WIP_USE_OFFERER_ADDRESS_AS_DATA_SOURCE=False) +@pytest.mark.features(WIP_USE_OFFERER_ADDRESS_AS_DATA_SOURCE=False, WIP_ENABLE_OFFER_ADDRESS=False) def test_serialize_collective_offer_template_legacy(): # Same as test_serialize_collective_offer_template domain1 = educational_factories.EducationalDomainFactory(name="Danse") @@ -534,6 +534,7 @@ def test_serialize_collective_offer_template_legacy(): description="description formidable", students=[StudentLevels.CAP1, StudentLevels.CAP2], subcategoryId=subcategories.CONCERT.id, + venue__street="Place de la mairie", venue__postalCode="86140", venue__name="La Moyenne Librairie SA", venue__publicName="La Moyenne Librairie",