agenda/tests/test_busy.py
Edward Betts a92debea5b Fix same-day flight location tracking
When multiple flights arrived on the same date, location tracking
only compared dates and missed later flights. Now compares both
date and time to handle same-day connecting flights correctly.

Example: Nov 21, 2023
- 06:15: Arrive Madrid (MVD → MAD)
- 09:15: Arrive London (MAD → LHR) ← Now properly detected as most recent

This ensures users show as "home" when they've returned to UK on
the same day as an international connection.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 04:10:25 +02:00

41 lines
1.2 KiB
Python

from datetime import date, datetime
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()
start = date(today.year, 1, 1)
trips = [
t
for t in agenda.trip.build_trip_list()
if t.start in [date(2023, 11, 14), date(2025, 2, 9)]
]
assert len(trips) == 2
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)
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"