MobilityData / gtfs-validator

Canonical GTFS Validator project for schedule (static) files.
https://gtfs-validator.mobilitydata.org/
Apache License 2.0
290 stars 101 forks source link

fix: make stop_without_zone_id conditional on fare rule type (#1663) #1682

Closed krnlmstrd closed 8 months ago

krnlmstrd commented 9 months ago

Summary:

Resolves #1663 by updating StopZoneIdValidator to issue notice about a stop without zone_id defined only when the stop is contained in a trip contained in a route defined in a fare rule with zone fields defined. Change from previous logic which warned about stops without zone_id defined if any fare rules had zone fields defined.

Note that a previous, nearly-identical version of this pull request was closed and abandoned because of issues with the commit email address and the CLA.

Expected behavior:

If a stop of location_type 0 does not have a zone_id defined, and that stop is defined as part of a trip in stop_times.txt, and that trip is defined as part of a route in trips.txt, and that route is defined in a fare rule in fare_rules.txt, and that fare rule has any of origin_id, destination_id, or contains_id defined, then a stop_without_zone_id notice is issued.

Exactly one notice is issued per stop that meets the criteria to issue a notice even if that stop meets the notice criteria through multiple combinations of trips, routes, and fare rules.

The notice is never issued if a stop has a zone_id defined, even if that zone_id is never defined in a zone field of a fare rule associated with the stop by the (stop_time > trip > route) chain described above.

This pull request fixes the issue on the test feed provided by westontrillium in google/transit #429.

Validator results on test feed without fix: Validator results without fix

Validator results on test feed with fix: Validator results with fix

Please make sure these boxes are checked before submitting your pull request - thanks!

krnlmstrd commented 9 months ago

All notices dropped in acceptance testing are of type stop_without_zone_id.

krnlmstrd commented 8 months ago

Closing this pr because I am unifying/deleting GitHub accounts and associated email addresses. Please see an identical new PR.