Handle date-only transport times in trip page template
This commit is contained in:
parent
2a69904ef1
commit
d9b08f3e5b
2 changed files with 72 additions and 3 deletions
|
|
@ -281,7 +281,9 @@
|
||||||
{% set item = e.detail %}
|
{% set item = e.detail %}
|
||||||
{% set full_flight_number = item.airline_code + item.flight_number %}
|
{% set full_flight_number = item.airline_code + item.flight_number %}
|
||||||
{% set radarbox_url = "https://www.radarbox.com/data/flights/" + full_flight_number %}
|
{% set radarbox_url = "https://www.radarbox.com/data/flights/" + full_flight_number %}
|
||||||
{% set is_overnight = item.arrive and item.depart.date() != item.arrive.date() %}
|
{% set depart_date = item.depart.date() if item.depart.hour is defined else item.depart %}
|
||||||
|
{% set arrive_date = item.arrive.date() if (item.arrive and item.arrive.hour is defined) else item.arrive %}
|
||||||
|
{% set is_overnight = item.arrive and depart_date != arrive_date %}
|
||||||
<div class="trip-transport-card my-1">
|
<div class="trip-transport-card my-1">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">
|
<h5 class="card-title">
|
||||||
|
|
@ -317,7 +319,9 @@
|
||||||
|
|
||||||
{% elif e.element_type == "train" %}
|
{% elif e.element_type == "train" %}
|
||||||
{% set item = e.detail %}
|
{% set item = e.detail %}
|
||||||
{% set is_overnight = item.depart.date() != item.arrive.date() %}
|
{% set depart_date = item.depart.date() if item.depart.hour is defined else item.depart %}
|
||||||
|
{% set arrive_date = item.arrive.date() if item.arrive.hour is defined else item.arrive %}
|
||||||
|
{% set is_overnight = depart_date != arrive_date %}
|
||||||
<div class="trip-transport-card my-1">
|
<div class="trip-transport-card my-1">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title">
|
<h5 class="card-title">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
"""Regression tests for trip page route wiring."""
|
"""Regression tests for trip page route wiring and rendering."""
|
||||||
|
|
||||||
from datetime import date
|
from datetime import date
|
||||||
import typing
|
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.agenda.weather.get_trip_weather = original_get_trip_weather
|
||||||
web_view.flask.render_template = original_render_template
|
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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue