Skip to content

Commit e4a8834

Browse files
authored
Merge pull request #4262 from hove-io/fix_realtime_in_departureboard
Fix realtime in departureboard
2 parents fb441e0 + 88b9dc1 commit e4a8834

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

source/jormungandr/jormungandr/realtime_schedule/realtime_proxy.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,6 @@ def _update_stop_schedule(self, request, stop_schedule, next_realtime_passages,
226226
self._add_datetime(stop_schedule, passage, add_direction)
227227

228228
stop_schedule.date_times.sort(key=lambda dt: dt.date + dt.time)
229-
if not len(stop_schedule.date_times) and not stop_schedule.HasField('response_status'):
230-
stop_schedule.response_status = type_pb2.no_departure_this_day
231229

232230
# By default, filter passage if they are on the same route point
233231
def _filter_base_passage(self, passage, route_point):
@@ -242,6 +240,13 @@ def _update_passages(self, passages, route_point, template, next_realtime_passag
242240

243241
# append the realtime passages
244242
for rt_passage in next_realtime_passages:
243+
# As in stop_schedule, we should manage group_by_destination to decide whether we keep
244+
# realtime passage comparing passage destination with route_point destination
245+
# https://navitia.atlassian.net/browse/NAV-2893
246+
direction_uri = route_point.fetch_direction_uri()
247+
if direction_uri:
248+
if not self._is_valid_direction(direction_uri, rt_passage.direction_uri, group_by_dest=False):
249+
continue
245250
new_passage = deepcopy(template)
246251
new_passage.stop_date_time.arrival_date_time = date_to_timestamp(rt_passage.datetime)
247252
new_passage.stop_date_time.departure_date_time = date_to_timestamp(rt_passage.datetime)

source/jormungandr/jormungandr/schedule.py

+7
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,13 @@ def fetch_direction_type(self):
176176
else:
177177
return None
178178

179+
def fetch_direction_uri(self):
180+
# type: () -> Optional[Text]
181+
if self.pb_route.HasField("direction"):
182+
return self.pb_route.direction.uri
183+
else:
184+
return None
185+
179186

180187
def _get_route_point_from_stop_schedule(stop_schedule):
181188
rp = RoutePoint(stop_point=stop_schedule.stop_point, route=stop_schedule.route)

source/jormungandr/tests/proxy_realtime_timeo_integration_tests.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1031,7 +1031,7 @@ def test_terminus_schedule_groub_by_destination_empty_timeo_response(self):
10311031

10321032
assert tmp["display_informations"]["direction"] == "EE"
10331033
assert len(tmp['date_times']) == 0
1034-
assert tmp['additional_informations'] == 'no_departure_this_day'
1034+
assert tmp['additional_informations'] is None
10351035

10361036
def test_terminus_schedule_groub_by_destination_partial_terminus(self):
10371037
"""
@@ -1048,11 +1048,11 @@ def test_terminus_schedule_groub_by_destination_partial_terminus(self):
10481048
terminus_schedules = response['terminus_schedules']
10491049
assert len(terminus_schedules) == 2
10501050
tmp = terminus_schedules[0]
1051-
assert tmp["additional_informations"] == "no_departure_this_day"
1051+
assert tmp["additional_informations"] is None
10521052
assert tmp["display_informations"]["direction"] == "TS_E"
10531053
assert len(tmp['date_times']) == 0
10541054

10551055
tmp = terminus_schedules[1]
1056-
assert tmp["additional_informations"] == "no_departure_this_day"
1056+
assert tmp["additional_informations"] is None
10571057
assert tmp["display_informations"]["direction"] == "TS_A"
10581058
assert len(tmp['date_times']) == 0

0 commit comments

Comments
 (0)