""" 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", }, ], }, ]