Handle date-only transport times in trip page template

This commit is contained in:
Edward Betts 2026-03-07 13:25:56 +00:00
parent 2a69904ef1
commit d9b08f3e5b
2 changed files with 72 additions and 3 deletions

View file

@ -1,4 +1,4 @@
"""Regression tests for trip page route wiring."""
"""Regression tests for trip page route wiring and rendering."""
from datetime import date
import typing
@ -64,3 +64,68 @@ def test_trip_page_passes_data_dir_to_unbooked_flight_helper() -> None:
)
web_view.agenda.weather.get_trip_weather = original_get_trip_weather
web_view.flask.render_template = original_render_template
def test_trip_page_renders_with_date_only_train_leg() -> None:
"""Trip page should render when train legs use date values (no time)."""
trip = Trip(
start=date(2025, 1, 28),
travel=[
{
"type": "train",
"depart": date(2025, 1, 28),
"from": "A",
"to": "B",
"from_station": {
"name": "A",
"country": "gb",
"latitude": 51.5,
"longitude": -0.1,
},
"to_station": {
"name": "B",
"country": "gb",
"latitude": 51.6,
"longitude": -0.2,
},
"legs": [
{
"from": "A",
"to": "B",
"depart": date(2025, 1, 28),
"arrive": date(2025, 1, 28),
"from_station": {
"name": "A",
"country": "gb",
"latitude": 51.5,
"longitude": -0.1,
},
"to_station": {
"name": "B",
"country": "gb",
"latitude": 51.6,
"longitude": -0.2,
},
"operator": "Test Rail",
}
],
}
],
)
with web_view.app.app_context():
original_get_trip_list = web_view.get_trip_list
original_get_trip_weather = web_view.agenda.weather.get_trip_weather
try:
web_view.get_trip_list = lambda: [trip]
web_view.agenda.weather.get_trip_weather = lambda *_args, **_kwargs: []
web_view.app.config["TESTING"] = True
with web_view.app.test_client() as client:
response = client.get("/trip/2025-01-28")
assert response.status_code == 200
assert b"Test Rail" in response.data
finally:
web_view.get_trip_list = original_get_trip_list
web_view.agenda.weather.get_trip_weather = original_get_trip_weather