from datetime import date, datetime import agenda.busy import agenda.travel as travel import agenda.trip from web_view import app def test_get_location_for_date() -> None: app.config["SERVER_NAME"] = "test" with app.app_context(): today = datetime.now().date() trips = agenda.trip.build_trip_list() data_dir = app.config["PERSONAL_DATA"] # Parse YAML files once for the test bookings = travel.parse_yaml("flights", data_dir) accommodations = travel.parse_yaml("accommodation", data_dir) airports = travel.parse_yaml("airports", data_dir) for year in range(2023, 2025): start = date(2023, 1, 1) busy_events = agenda.busy.get_busy_events(start, app.config, trips) weekends = agenda.busy.weekends(start, busy_events, trips, data_dir) for weekend in weekends: for day in "saturday", "sunday": assert weekend[day + "_location"][0] == "Bristol" or bool( weekend[day] ) # Debug the April 29 issue april_29_location = agenda.busy.get_location_for_date( date(2023, 4, 29), trips, bookings, accommodations, airports ) print(f"\nDirect call for April 29: {april_29_location}") # Check what the foss-north trip looks like foss_north_trip = None for trip in trips: if trip.title == "foss-north" and trip.start == date(2023, 4, 22): foss_north_trip = trip print(f"foss-north trip: {trip.start} to {trip.end}") print(f"foss-north locations: {trip.locations()}") break l1 = agenda.busy.get_location_for_date( date(2025, 2, 15), trips, bookings, accommodations, airports ) assert l1[0] == "Hackettstown" l2 = agenda.busy.get_location_for_date( date(2025, 7, 1), trips, bookings, accommodations, airports ) assert l2[0] == "Bristol" l2 = agenda.busy.get_location_for_date( date(2023, 12, 2), trips, bookings, accommodations, airports ) assert l2[0] == "Bristol" l2 = agenda.busy.get_location_for_date( date(2023, 10, 7), trips, bookings, accommodations, airports ) assert l2[0] == "Bristol" l2 = agenda.busy.get_location_for_date( date(2023, 2, 18), trips, bookings, accommodations, airports ) assert l2[0] == "Bristol" l2 = agenda.busy.get_location_for_date( date(2025, 8, 2), trips, bookings, accommodations, airports ) assert l2[0] == "Bristol" # Fix the April 29 case assert april_29_location[0] == "Bristol"