transport-accessibility/transport_accessibility/pt_map/model_test_fields.py
Johannes Randerath f314bfb396 Got rid of bridge and fixed GTFS compliance
- Ported the bridge that was using a custom GTFS class and Pandas
  Dataframes to a native Django solution for and interface between db
  and csv (see api/io.py)
- Fixed some issues regarding the compliance of the exported csv files
  with the GTFS reference. I.e. now allowing times 24:00:00 <= t >=
  24:59:59
2024-06-24 14:21:53 +02:00

601 lines
13 KiB
Python

"""
Constants defining requirements of model fields.
To be used to decide wether a test should run or fail and which tests to run to test for self-preserved integrity.
"""
from pt_map.models import *
field_requirements = \
[
{
"model": Agency,
"fields": [
{
"name": "agency_id",
"type": "pk",
"required": "true",
},
{
"name": "agency_name",
"type": "str",
"required": "true",
},
{
"name": "agency_url",
"type": "url",
"required": "true",
},
{
"name": "agency_timezone",
"type": "timezone",
"required": "true",
},
{
"name": "agency_lang",
"type": "langcode",
"required": "false",
},
{
"name": "agency_phone",
"type": "telephone",
"required": "false",
},
{
"name": "agency_email",
"type": "email",
"required": "false",
},
],
},
{
"model": "Stop",
"fields": [
{
"name": "stop_id",
"type": "pk",
"required": "true",
},
{
"name": "stop_code",
"type": "str",
"required": "false",
},
{
"name": "stop_name",
"type": "str",
"required": "true",
},
{
"name": "stop_desc",
"type": "str",
"required": "false",
},
{
"name": "stop_lat",
"type": "float",
"required": "if",
"required_if": ["location_type", [0,1,2]],
},
{
"name": "stop_lon",
"type": "float",
"required": "if",
"required_if": ["location_type", [0,1,2]],
},
{
"name": "zone_id",
"type": "str",
"required": "false",
},
{
"name": "stop_url",
"type": "url",
"required": "false",
},
{
"name": "location_type",
"type": "int",
"required": "true",
},
{
"name": "parent_station",
"type": "fk",
"required": "if",
"required_if": ["location_type", [2,3,4]],
"forbidden_if": ["location_type", [1]],
},
{
"name": "stop_timezone",
"type": "timezone",
"required": "false",
},
{
"name": "wheelchair_boarding",
"type": "int",
"required": "false",
},
],
},
{
"model": "Stop",
"fields": [
{
"name": "stop_id",
"type": "pk",
"required": "true",
},
{
"name": "stop_code",
"type": "str",
"required": "false",
},
{
"name": "stop_name",
"type": "str",
"required": "true",
},
{
"name": "stop_desc",
"type": "str",
"required": "false",
},
{
"name": "stop_lat",
"type": "float",
"required": "true",
},
{
"name": "stop_lon",
"type": "float",
"required": "true",
},
{
"name": "zone_id",
"type": "str",
"required": "false",
},
{
"name": "stop_url",
"type": "url",
"required": "false",
},
{
"name": "location_type",
"type": "int",
"required": "true",
},
{
"name": "parent_station",
"type": "str",
"required": "false",
},
{
"name": "stop_timezone",
"type": "timezone",
"required": "false",
},
{
"name": "wheelchair_boarding",
"type": "int",
"required": "false",
},
],
},
{
"model": "Route",
"fields": [
{
"name": "route_id",
"type": "pk",
"required": "true",
},
{
"name": "route_short_name",
"type": "str",
"required": "false",
},
{
"name": "route_long_name",
"type": "str",
"required": "true",
},
{
"name": "route_desc",
"type": "str",
"required": "false",
},
{
"name": "route_type",
"type": "int",
"required": "true",
},
{
"name": "route_url",
"type": "url",
"required": "false",
},
{
"name": "route_color",
"type": "str",
"required": "false",
},
{
"name": "route_text_color",
"type": "str",
"required": "false",
}
],
},
{
"model": "Trip",
"fields": [
{
"name": "trip_id",
"type": "pk",
"required": "true",
},
{
"name": "route_id",
"type": "fk",
"required": "true",
},
{
"name": "service_id",
"type": "fk",
"required": "true",
},
{
"name": "trip_headsign",
"type": "str",
"required": "true",
},
{
"name": "trip_short_name",
"type": "str",
"required": "false",
},
{
"name": "direction_id",
"type": "int",
"required": "true",
},
{
"name": "block_id",
"type": "str",
"required": "false",
},
{
"name": "shape_id",
"type": "fk",
"required": "true",
},
],
},
{
"model": "StopTime",
"fields": [
{
"name": "trip_id",
"type": "fk",
"required": "true",
},
{
"name": "arrival_time",
"type": "time",
"required": "true",
},
{
"name": "departure_time",
"type": "time",
"required": "true",
},
{
"name": "stop_id",
"type": "fk",
"required": "true",
},
{
"name": "stop_sequence",
"type": "int",
"required": "true",
},
{
"name": "pickup_type",
"type": "int",
"required": "true",
},
{
"name": "drop_off_type",
"type": "int",
"required": "true",
},
{
"name": "shape_dist_traveled",
"type": "float",
"required": "false",
},
{
"name": "timepoint",
"type": "int",
"required": "false",
},
],
},
{
"model": "Calendar",
"fields": [
{
"name": "service_id",
"type": "pk",
"required": "true",
},
{
"name": "monday",
"type": "int",
"required": "true",
},
{
"name": "tuesday",
"type": "int",
"required": "true",
},
{
"name": "wednesday",
"type": "int",
"required": "true",
},
{
"name": "thursday",
"type": "int",
"required": "true",
},
{
"name": "friday",
"type": "int",
"required": "true",
},
{
"name": "saturday",
"type": "int",
"required": "true",
},
{
"name": "sunday",
"type": "int",
"required": "true",
},
{
"name": "start_date",
"type": "date",
"required": "true",
},
{
"name": "end_date",
"type": "date",
"required": "true",
},
],
},
{
"model": "CalendarDates",
"fields": [
{
"name": "service_id",
"type": "fk",
"required": "true",
},
{
"name": "date",
"type": "date",
"required": "true",
},
{
"name": "exception_type",
"type": "int",
"required": "true",
},
],
},
{
"model": "FareAttributes",
"fields": [
{
"name": "fare_id",
"type": "pk",
"required": "true",
},
{
"name": "price",
"type": "float",
"required": "true",
},
{
"name": "currency_type",
"type": "str",
"required": "true",
},
{
"name": "payment_method",
"type": "int",
"required": "true",
},
{
"name": "transfers",
"type": "int",
"required": "true",
},
{
"name": "transfer_duration",
"type": "int",
"required": "true",
},
],
},
{
"model": "FareRules",
"fields": [
{
"name": "fare_id",
"type": "fk",
"required": "true",
},
{
"name": "route_id",
"type": "fk",
"required": "true",
},
{
"name": "origin_id",
"type": "fk",
"required": "true",
},
{
"name": "destination_id",
"type": "fk",
"required": "true",
},
{
"name": "contains_id",
"type": "fk",
"required": "false",
},
],
},
{
"model": "FareZones",
"fields": [
{
"name": "fare_zone_id",
"type": "pk",
"required": "true",
},
{
"name": "zone_id",
"type": "str",
"required": "true",
},
],
},
{
"model": "Shape",
"fields": [
{
"name": "shape_id",
"type": "pk",
"required": "true",
},
{
"name": "shape_pt_lat",
"type": "float",
"required": "true",
},
{
"name": "shape_pt_lon",
"type": "float",
"required": "true",
},
{
"name": "shape_pt_sequence",
"type": "int",
"required": "true",
},
{
"name": "shape_dist_traveled",
"type": "float",
"required": "true",
},
],
},
{
"model": "Frequencies",
"fields": [
{
"name": "trip_id",
"type": "fk",
"required": "true",
},
{
"name": "start_time",
"type": "time",
"required": "true",
},
{
"name": "end_time",
"type": "time",
"required": "true",
},
{
"name": "headway_secs",
"type": "int",
"required": "true",
},
{
"name": "exact_times",
"type": "int",
"required": "true",
},
],
},
{
"model": "Transfers",
"fields": [
{
"name": "from_stop_id",
"type": "fk",
"required": "true",
},
{
"name": "to_stop_id",
"type": "fk",
"required": "true",
},
{
"name": "transfer_type",
"type": "int",
"required": "true",
},
{
"name": "min_transfer_time",
"type": "int",
"required": "true",
},
],
},
{
"model": "FeedInfo",
"fields": [
{
"name": "feed_publisher_name",
"type": "str",
"required": "true",
},
{
"name": "feed_publisher_url",
"type": "url",
"required": "true",
},
{
"name": "feed_lang",
"type": "langcode",
"required": "true",
},
{
"name": "feed_start_date",
"type": "date",
"required": "true",
},
{
"name": "feed_end_date",
"type": "date",
"required": "false",
},
{
"name": "feed_version",
"type": "str",
"required": "true",
},
],
},
]