def test_process_start_timestamp_execution_missing_calendar_fields(self): mock_calendar = PropertyMock(return_value=pd.DataFrame({})) mock_calendar_dates = PropertyMock(return_value=pd.DataFrame({})) mock_stop_times = PropertyMock(return_value=pd.DataFrame({ TRIP_ID: ["test_trip_id"], START_TIMESTAMP_MAP[STOP_TIME_KEY]: ["test_stop_time"], })) mock_trips = PropertyMock(return_value=pd.DataFrame({ SERVICE_ID: ["test_service_id"], })) mock_agency = PropertyMock(return_value=pd.DataFrame({ AGENCY_TIMEZONE: ["test_agency_timezone"], })) mock_dataset = MagicMock() mock_dataset.__class__ = Feed type(mock_dataset).calendar = mock_calendar type(mock_dataset).calendar_dates = mock_calendar_dates type(mock_dataset).stop_times = mock_stop_times type(mock_dataset).trips = mock_trips type(mock_dataset).agency = mock_agency mock_metadata = MagicMock() mock_metadata.__class__ = GtfsMetadata mock_gtfs_representation = MagicMock() mock_gtfs_representation.__class__ = GtfsRepresentation type(mock_gtfs_representation).dataset = mock_dataset type(mock_gtfs_representation).metadata = mock_metadata under_test = process_start_timestamp_for_gtfs_metadata( mock_gtfs_representation) self.assertIsInstance(under_test, GtfsRepresentation) mock_metadata.start_timestamp.assert_not_called()
def test_process_start_timestamp_execution_should_set_start_timestamp_metadata( self, mock_stop_times_for_date, mock_utc_offset, mock_dates_by_type): mock_dataset = MagicMock() mock_dataset.__class__ = Feed mock_metadata = MagicMock() mock_metadata.__class__ = GtfsMetadata mock_gtfs_representation = MagicMock() mock_gtfs_representation.__class__ = GtfsRepresentation type(mock_gtfs_representation).dataset = mock_dataset type(mock_gtfs_representation).metadata = mock_metadata mock_stop_times_for_date.return_value = pd.DataFrame({ "trip_id": ["test_trip_id"], "arrival_time": ["05:00:00"] }) mock_dates_by_type.return_value = pd.DataFrame({ "service_id": ["test_service_id"], "date": ["20201010"] }) mock_utc_offset.return_value = "" under_test = process_start_timestamp_for_gtfs_metadata( mock_gtfs_representation) self.assertIsInstance(under_test, GtfsRepresentation) mock_metadata.start_timestamp.assert_not_called()
def test_process_start_timestamp_execution_with_no_calendar_dates( self, mock_stop_times_for_date, mock_utc_offset, mock_dates_by_type): mock_calendar = PropertyMock(return_value=pd.DataFrame({ START_TIMESTAMP_MAP[CALENDAR_DATE_KEY]: ["20201010"], MONDAY: [0], TUESDAY: [0], WEDNESDAY: [0], THURSDAY: [0], FRIDAY: [0], SATURDAY: [1], SUNDAY: [0], SERVICE_ID: ["test_service_id"], })) mock_calendar_dates = PropertyMock(return_value=None) mock_stop_times = PropertyMock(return_value=pd.DataFrame({ TRIP_ID: ["test_trip_id"], START_TIMESTAMP_MAP[STOP_TIME_KEY]: ["test_stop_time"], })) mock_trips = PropertyMock(return_value=pd.DataFrame({ SERVICE_ID: ["test_service_id"], })) mock_agency = PropertyMock(return_value=pd.DataFrame({ AGENCY_TIMEZONE: ["test_agency_timezone"], })) mock_dataset = MagicMock() mock_dataset.__class__ = Feed type(mock_dataset).calendar = mock_calendar type(mock_dataset).calendar_dates = mock_calendar_dates type(mock_dataset).stop_times = mock_stop_times type(mock_dataset).trips = mock_trips type(mock_dataset).agency = mock_agency mock_metadata = MagicMock() mock_metadata.__class__ = GtfsMetadata mock_gtfs_representation = MagicMock() mock_gtfs_representation.__class__ = GtfsRepresentation type(mock_gtfs_representation).dataset = mock_dataset type(mock_gtfs_representation).metadata = mock_metadata mock_stop_times_for_date.return_value = pd.DataFrame({ TRIP_ID: ["test_trip_id"], START_TIMESTAMP_MAP[STOP_TIME_KEY]: ["05:00:00"], }) mock_dates_by_type.return_value = pd.DataFrame({ SERVICE_ID: ["test_service_id"], DATE: ["20201010"] }) mock_utc_offset.return_value = "-05:00" under_test = process_start_timestamp_for_gtfs_metadata( mock_gtfs_representation) self.assertIsInstance(under_test, GtfsRepresentation) self.assertEqual(mock_metadata.start_timestamp, "2020-10-10T05:00:00-05:00")
def call_usecases( dataset_representation, source_name, dataset_url, api_url, username, password ): dataset_representation = process_start_service_date_for_gtfs_metadata( dataset_representation ) dataset_representation = process_end_service_date_for_gtfs_metadata( dataset_representation ) # TODO: fix the actual issue. might be taken care of once validator is deployed. try: dataset_representation = process_start_timestamp_for_gtfs_metadata( dataset_representation ) except TypeError as te: print( f"process_start_timestamp_for_gtfs_metadata for source {source_name}," f"dataset {dataset_url} raised: \n {te}", file=sys.stderr, ) try: dataset_representation = process_end_timestamp_for_gtfs_metadata( dataset_representation ) except TypeError as te: print( f"process_end_timestamp_for_gtfs_metadata for source {source_name}, dataset {dataset_url} raised: \n {te}", file=sys.stderr, ) dataset_representation = process_main_language_code_for_gtfs_metadata( dataset_representation ) dataset_representation = process_timezones_for_gtfs_metadata(dataset_representation) dataset_representation = process_bounding_box_for_gtfs_metadata( dataset_representation ) dataset_representation = process_bounding_octagon_for_gtfs_metadata( dataset_representation ) dataset_representation = process_agencies_count_for_gtfs_metadata( dataset_representation ) dataset_representation = process_routes_count_by_type_for_gtfs_metadata( dataset_representation ) dataset_representation = process_stops_count_by_type_for_gtfs_metadata( dataset_representation ) dataset_representation = create_dataset_entity_for_gtfs_metadata( dataset_representation, api_url, username, password ) return dataset_representation
def test_process_start_timestamp_execution_missing_files(self): mock_dataset = MagicMock() mock_dataset.__class__ = Feed mock_metadata = MagicMock() mock_metadata.__class__ = GtfsMetadata mock_gtfs_representation = MagicMock() mock_gtfs_representation.__class__ = GtfsRepresentation type(mock_gtfs_representation).dataset = mock_dataset type(mock_gtfs_representation).metadata = mock_metadata under_test = process_start_timestamp_for_gtfs_metadata( mock_gtfs_representation) self.assertIsInstance(under_test, GtfsRepresentation) mock_metadata.start_timestamp.assert_not_called()
def test_process_start_timestamp_execution_missing_agency_fields(self): mock_calendar = PropertyMock(return_value=pd.DataFrame({ START_TIMESTAMP_MAP[CALENDAR_DATE_KEY]: ["20201010"], MONDAY: [0], TUESDAY: [0], WEDNESDAY: [0], THURSDAY: [0], FRIDAY: [0], SATURDAY: [1], SUNDAY: [0], SERVICE_ID: ["test_service_id"], })) mock_calendar_dates = PropertyMock(return_value=pd.DataFrame({ SERVICE_ID: ["test_another_service_id"], DATE: ["20201111"], EXCEPTION_TYPE: [2], })) mock_stop_times = PropertyMock(return_value=pd.DataFrame({ TRIP_ID: ["test_trip_id"], START_TIMESTAMP_MAP[STOP_TIME_KEY]: ["test_stop_time"], })) mock_trips = PropertyMock(return_value=pd.DataFrame({ SERVICE_ID: ["test_service_id"], })) mock_agency = PropertyMock(return_value=pd.DataFrame({})) mock_dataset = MagicMock() mock_dataset.__class__ = Feed type(mock_dataset).calendar = mock_calendar type(mock_dataset).calendar_dates = mock_calendar_dates type(mock_dataset).stop_times = mock_stop_times type(mock_dataset).trips = mock_trips type(mock_dataset).agency = mock_agency mock_metadata = MagicMock() mock_metadata.__class__ = GtfsMetadata mock_gtfs_representation = MagicMock() mock_gtfs_representation.__class__ = GtfsRepresentation type(mock_gtfs_representation).dataset = mock_dataset type(mock_gtfs_representation).metadata = mock_metadata under_test = process_start_timestamp_for_gtfs_metadata( mock_gtfs_representation) self.assertIsInstance(under_test, GtfsRepresentation) mock_metadata.start_timestamp.assert_not_called()
# Load the datasets in memory in the data repository data_repository = load_dataset(data_repository, datasets_infos, args.data_type) # Process each dataset representation in the data_repository for ( dataset_key, dataset_representation, ) in data_repository.get_dataset_representations().items(): dataset_representation = process_country_codes_for_gtfs_metadata( dataset_representation) dataset_representation = process_start_service_date_for_gtfs_metadata( dataset_representation) dataset_representation = process_end_service_date_for_gtfs_metadata( dataset_representation) dataset_representation = process_start_timestamp_for_gtfs_metadata( dataset_representation) dataset_representation = process_end_timestamp_for_gtfs_metadata( dataset_representation) dataset_representation = process_main_language_code_for_gtfs_metadata( dataset_representation) dataset_representation = process_timezones_for_gtfs_metadata( dataset_representation) dataset_representation = process_bounding_box_for_gtfs_metadata( dataset_representation) dataset_representation = process_bounding_octagon_for_gtfs_metadata( dataset_representation) dataset_representation = process_agencies_count_for_gtfs_metadata( dataset_representation) dataset_representation = process_routes_count_by_type_for_gtfs_metadata( dataset_representation) dataset_representation = process_stops_count_by_type_for_gtfs_metadata(