Skip to content

Commit

Permalink
(PC-33280)[API] test: explicitly add OA specific data in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
xordoquy-pass committed Jan 15, 2025
1 parent f52059b commit b31fdca
Show file tree
Hide file tree
Showing 7 changed files with 35 additions and 123 deletions.
125 changes: 9 additions & 116 deletions api/tests/core/bookings/test_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
)
Expand All @@ -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,
)
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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(
Expand All @@ -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,
)
Expand All @@ -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()
Expand Down Expand Up @@ -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):

Expand Down
5 changes: 5 additions & 0 deletions api/tests/core/external/external_pro_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion api/tests/core/offerers/test_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
)
Expand Down
4 changes: 2 additions & 2 deletions api/tests/core/offers/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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()
Expand Down
7 changes: 5 additions & 2 deletions api/tests/core/offers/test_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
12 changes: 11 additions & 1 deletion api/tests/core/search/test_backend_algolia.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
3 changes: 2 additions & 1 deletion api/tests/core/search/test_serialize_algolia.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -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",
Expand Down

0 comments on commit b31fdca

Please sign in to comment.