When traveling to nearby European countries by rail or ferry, return journeys often aren't recorded in flight/accommodation data. Added logic to assume you've returned home after short European trips that ended >3 days ago. Covers common rail/ferry destinations: Belgium, Netherlands, France, Germany, Switzerland, Austria, Italy, Spain. Example: Feb 2-5 trip to Brussels (by rail), Feb 18 now correctly shows "Bristol" instead of "Brussels". 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
63 lines
1.9 KiB
Python
63 lines
1.9 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, 2, 2),
|
|
date(2023, 9, 8),
|
|
date(2023, 11, 14),
|
|
date(2025, 2, 9),
|
|
date(2025, 7, 4),
|
|
]
|
|
]
|
|
assert len(trips) == 5
|
|
|
|
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"
|
|
|
|
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"
|