From a32b886b128bd959ab17236a1e11ee5dbcdefad5 Mon Sep 17 00:00:00 2001 From: Holger Bruch Date: Sat, 16 Feb 2019 00:18:48 +0100 Subject: [PATCH] Skip ValidateTransferWalkingTime if distance can't be figured out --- tests/transitfeed/testtransfer.py | 15 +++++++++++++++ transitfeed/transfer.py | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/tests/transitfeed/testtransfer.py b/tests/transitfeed/testtransfer.py index 587f6490..f06fa65b 100644 --- a/tests/transitfeed/testtransfer.py +++ b/tests/transitfeed/testtransfer.py @@ -298,6 +298,21 @@ def testVeryCloseStationsDoNotTriggerWarning(self): transfer.Validate(self.problems) self.accumulator.AssertNoMoreExceptions() + def testStationsWithoutCoordsDoNotCrashValidation(self): + # from_stop_id and to_stop_id are present in schedule, + # but one of the stops has no coordinates + schedule = transitfeed.Schedule() + stop1 = schedule.AddStop(57.5, 30.2, "stop 1") + stop2 = schedule.AddStop(None, None, "stop 2") + transfer = transitfeed.Transfer(schedule=schedule) + transfer.from_stop_id = stop1.stop_id + transfer.to_stop_id = stop2.stop_id + transfer.transfer_type = 2 + transfer.min_transfer_time = 60 + repr(transfer) # shouldn't crash + transfer.Validate(self.problems) + self.accumulator.AssertNoMoreExceptions() + def testCustomAttribute(self): """Add unknown attributes to a Transfer and make sure they are saved.""" transfer = transitfeed.Transfer() diff --git a/transitfeed/transfer.py b/transitfeed/transfer.py index ddcd8b2e..df34caf4 100755 --- a/transitfeed/transfer.py +++ b/transitfeed/transfer.py @@ -154,6 +154,10 @@ def ValidateTransferWalkingTime(self, problems): return distance = self.GetTransferDistance() + # if distance is None, lat/lon of one or both stops are invalid, + # which is already reported + if distance is None: + return # If min_transfer_time + 120s isn't enough for someone walking very fast # (2m/s) then issue a warning. #