def test_should_not_get_offers_on_things(self, app): # Given offerer = create_offerer() venue = create_venue(offerer) offer = create_offer_with_thing_product(venue) stock = create_stock(beginning_datetime=None, offer=offer) repository.save(stock) # When offers = build_query_offers_with_max_stock_date_between_today_and_end_of_quarantine( FIRST_DAY_AFTER_QUARANTINE, TODAY).all() # Then assert offers == []
def test_should_get_offer_with_a_date_between_today_and_15_04(self, app): # Given offerer = create_offerer() venue = create_venue(offerer) offer = create_offer_with_event_product(venue) stock = create_stock(beginning_datetime=datetime(2020, 4, 15, 23, 59), offer=offer) repository.save(stock) # When offers = build_query_offers_with_max_stock_date_between_today_and_end_of_quarantine( FIRST_DAY_AFTER_QUARANTINE, TODAY).all() # Then assert offers == [offer]
def fetch_user_emails_for_offers_with_max_stock_date_between_today_and_end_of_quarantine( first_day_after_quarantine: datetime, today: datetime ): offers_query = build_query_offers_with_max_stock_date_between_today_and_end_of_quarantine( first_day_after_quarantine, today ) users_info = ( offers_query.join(Venue) .join(Offerer) .join(UserOfferer) .join(User) .distinct(User.email) .with_entities(User.email) .all() ) return [user_info.email for user_info in users_info]
def test_should_not_get_offers_with_dates_only_before_today(self, app): # Given yesterday = TODAY - timedelta(days=1) offerer = create_offerer() venue = create_venue(offerer) offer = create_offer_with_event_product(venue) stock = create_stock(beginning_datetime=yesterday, offer=offer) repository.save(stock) # When offers = build_query_offers_with_max_stock_date_between_today_and_end_of_quarantine( FIRST_DAY_AFTER_QUARANTINE, TODAY).all() # Then assert offers == []