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
Esempio n. 2
0
    def test_process_routes_count_by_type_with_every_route(self, mock_env):
        test_env = {
            TRAM_CODE: "test_tram_code",
            SUBWAY_CODE: "test_subway_code",
            RAIL_CODE: "test_rail_code",
            BUS_CODE: "test_bus_code",
            FERRY_CODE: "test_ferry_code",
            CABLE_TRAM_CODE: "test_cable_tram_code",
            AERIAL_LIFT_CODE: "test_aerial_lift_code",
            FUNICULAR_CODE: "test_funicular_code",
            TROLLEY_BUS_CODE: "test_trolley_bus_code",
            MONORAIL_CODE: "test_monorail_code",
        }
        mock_env.__getitem__.side_effect = test_env.__getitem__

        mock_routes = PropertyMock(return_value=pd.DataFrame(
            {ROUTE_TYPE: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]}))
        mock_dataset = MagicMock()
        mock_dataset.__class__ = Feed
        type(mock_dataset).routes = mock_routes

        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_routes_count_by_type_for_gtfs_metadata(
            mock_gtfs_representation)
        self.assertIsInstance(under_test, GtfsRepresentation)
        mock_routes.assert_called()
        self.assertEqual(
            mock_metadata.routes_count_by_type,
            {
                "test_tram_code": 1,
                "test_subway_code": 1,
                "test_rail_code": 1,
                "test_bus_code": 1,
                "test_ferry_code": 1,
                "test_cable_tram_code": 1,
                "test_aerial_lift_code": 1,
                "test_funicular_code": 1,
                "test_trolley_bus_code": 1,
                "test_monorail_code": 1,
            },
        )
Esempio n. 3
0
    def test_process_routes_count_with_missing_files(self, mock_env):
        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_routes_count_by_type_for_gtfs_metadata(
            mock_gtfs_representation)
        self.assertIsInstance(under_test, GtfsRepresentation)
        mock_env.assert_not_called()
        mock_metadata.routes_count_by_type.assert_not_called()
Esempio n. 4
0
    def test_process_routes_count_by_type_with_no_routes(self, mock_env):
        mock_routes = PropertyMock(return_value=pd.DataFrame({ROUTE_TYPE: []}))
        mock_dataset = MagicMock()
        mock_dataset.__class__ = Feed
        type(mock_dataset).routes = mock_routes

        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_routes_count_by_type_for_gtfs_metadata(
            mock_gtfs_representation)
        self.assertIsInstance(under_test, GtfsRepresentation)
        mock_metadata.routes_count_by_type.assert_not_called()
Esempio n. 5
0
    def test_process_routes_count_with_valid_gtfs_representation_should_return_instance(
            self, mock_env):
        test_env = {
            TRAM_CODE: "test_tram_code",
            SUBWAY_CODE: "test_subway_code",
            RAIL_CODE: "test_rail_code",
            BUS_CODE: "test_bus_code",
            FERRY_CODE: "test_ferry_code",
            CABLE_TRAM_CODE: "test_cable_tram_code",
            AERIAL_LIFT_CODE: "test_aerial_lift_code",
            FUNICULAR_CODE: "test_funicular_code",
            TROLLEY_BUS_CODE: "test_trolley_bus_code",
            MONORAIL_CODE: "test_monorail_code",
        }
        mock_env.__getitem__.side_effect = test_env.__getitem__

        mock_gtfs_representation = MagicMock()
        mock_gtfs_representation.__class__ = GtfsRepresentation
        under_test = process_routes_count_by_type_for_gtfs_metadata(
            mock_gtfs_representation)
        self.assertIsInstance(under_test, GtfsRepresentation)
Esempio n. 6
0
            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(
            dataset_representation)
        dataset_representation = create_dataset_entity_for_gtfs_metadata(
            dataset_representation, api_url)

        # Print results
        data_repository.print_dataset_representation(dataset_key)

    # Print memory usage
    print("\n--------------- Memory Usage ---------------\n")
    print(hpy().heap())