From 807ff0eaf1b0ef321002cb31738dcfc2b26a3f5d Mon Sep 17 00:00:00 2001 From: Mike Zappitello Date: Mon, 28 Aug 2023 16:30:54 -0400 Subject: [PATCH] Add testing for Missing Service Dates Service Dates are being added shortly after reading gtfs-rt parquet files, both for trip updates and vehicle positions. Create a new test suite for testing them, named after the l0_gtfs-rt_events file that calls them. Adding these tests and a new test suite required a bit of a shuffle to our testing directory. * a new csv file was added for vp gtfs-rt data that is missing some service dates * a new parquet file was added for tu gtfs-rt data that is missing some service dates (i coulndn't figure out how to get the csv strat to work here) * the pytest fixture for reading local parquet files is used by both tests, so it had to be moved into a new, top level `conftest.py` file. * similarly, the csv -> vp parquet functionality is needed by both and was moved into `test_resources.py` * lastly, a failing test in performance manager tests was corrected. --- python_src/tests/conftest.py | 51 +++++++++ .../test_l0_gtfs_rt_events.py | 106 ++++++++++++++++++ .../test_performance_manager.py | 71 +++--------- .../tests/test_files/pipeline_flat_out.csv | 2 +- .../test_files/tu_missing_start_date.parquet | Bin 0 -> 151318 bytes .../test_files/vp_missing_start_date.csv | 20 ++++ python_src/tests/test_resources.py | 26 +++++ 7 files changed, 218 insertions(+), 58 deletions(-) create mode 100644 python_src/tests/conftest.py create mode 100644 python_src/tests/performance_manager/test_l0_gtfs_rt_events.py create mode 100644 python_src/tests/test_files/tu_missing_start_date.parquet create mode 100644 python_src/tests/test_files/vp_missing_start_date.csv diff --git a/python_src/tests/conftest.py b/python_src/tests/conftest.py new file mode 100644 index 00000000..bb4b2650 --- /dev/null +++ b/python_src/tests/conftest.py @@ -0,0 +1,51 @@ +""" +this file contains fixtures that are intended to be used across multiple test +files +""" + +from typing import ( + Iterator, + List, + Optional, + Sequence, + Tuple, + Union, +) + +import pytest +from _pytest.monkeypatch import MonkeyPatch +from pyarrow import fs, parquet, Table + + +@pytest.fixture(autouse=True, name="get_pyarrow_table_patch") +def fixture_get_pyarrow_table_patch(monkeypatch: MonkeyPatch) -> Iterator[None]: + """ + the aws.s3 function `_get_pyarrow_table` function reads parquet files from + s3 and returns a pyarrow table. when testing on our github machines, we + don't have access to s3, so all tests must be run against local files. + monkeypatch the function to read from a local filepath. + """ + + def mock__get_pyarrow_table( + filename: Union[str, List[str]], + filters: Optional[Union[Sequence[Tuple], Sequence[List[Tuple]]]] = None, + ) -> Table: + active_fs = fs.LocalFileSystem() + + if isinstance(filename, list): + to_load = filename + else: + to_load = [filename] + + if len(to_load) == 0: + return Table.from_pydict({}) + + return parquet.ParquetDataset( + to_load, filesystem=active_fs, filters=filters + ).read_pandas() + + monkeypatch.setattr( + "lamp_py.aws.s3._get_pyarrow_table", mock__get_pyarrow_table + ) + + yield diff --git a/python_src/tests/performance_manager/test_l0_gtfs_rt_events.py b/python_src/tests/performance_manager/test_l0_gtfs_rt_events.py new file mode 100644 index 00000000..893511c7 --- /dev/null +++ b/python_src/tests/performance_manager/test_l0_gtfs_rt_events.py @@ -0,0 +1,106 @@ +import os +import pathlib + +from lamp_py.performance_manager.l0_rt_vehicle_positions import ( + get_vp_dataframe, + transform_vp_datatypes, +) +from lamp_py.performance_manager.l0_rt_trip_updates import ( + get_and_unwrap_tu_dataframe, +) +from lamp_py.performance_manager.gtfs_utils import ( + add_missing_service_dates, + service_date_from_timestamp, +) + +from ..test_resources import test_files_dir, csv_to_vp_parquet + + +def test_service_date_from_timestamp() -> None: + """ + test that the service date from timestamp function correctly handles + timestamps around the threshold when the service date switches over. + """ + dst_expected = { + # dst started on 8 march 2020, the clock goes from 1:59 -> 3:00 + 20200307: [ + 1583650200, # 1:50 am + 1583650740, # 1:59 am + 1583650799, # 1:59:59 am + ], + 20200308: [ + 1583650800, # 3:00 am + 1583651400, # 3:10 am + ], + # dst ended on 1 nov 2020, the clock goes from 2:00 -> 1:00 + 20201031: [ + 1604209800, # 1:50 am + 1604210340, # 1:59 am + 1604210399, # 1:59:59 am + 1604210400, # 1:00 am (second time) + 1604214000, # 2:00 am + 1604214000, # 2:00 am + 1604217000, # 2:50 am + 1604217540, # 2:59 am + 1604217599, # 2:59:59 am + ], + 20201101: [ + 1604217600, # 3:00 am + 1604218200, # 3:10 am + ], + } + + for service_date, timestamps in dst_expected.items(): + for timestamp in timestamps: + assert service_date == service_date_from_timestamp(timestamp) + + +def test_vp_missing_service_date(tmp_path: pathlib.Path) -> None: + """ + test that missing service dates in gtfs-rt vehicle position files can be + correctly backfilled. + """ + csv_file = os.path.join(test_files_dir, "vp_missing_start_date.csv") + + parquet_folder = tmp_path.joinpath( + "RT_VEHICLE_POSITIONS/year=2023/month=5/day=8/hour=11" + ) + parquet_folder.mkdir(parents=True) + parquet_file = str(parquet_folder.joinpath("flat_file.parquet")) + + csv_to_vp_parquet(csv_file, parquet_file) + + events = get_vp_dataframe(to_load=[parquet_file], route_ids=["Blue"]) + events = transform_vp_datatypes(events) + + # ensure that there are NaN service dates + assert events["service_date"].hasnans + + # add the service dates that are missing + events = add_missing_service_dates( + events, timestamp_key="vehicle_timestamp" + ) + + # check that new service dates match existing and are numbers + assert len(events["service_date"].unique()) == 1 + assert not events["service_date"].hasnans + + +def test_tu_missing_service_date() -> None: + """ + test that trip update gtfs data with missing service dates can be processed + correctly. + """ + parquet_file = os.path.join(test_files_dir, "tu_missing_start_date.parquet") + events = get_and_unwrap_tu_dataframe([parquet_file], route_ids=["Blue"]) + + # check that NaN service dates exist from reading the file + assert events["service_date"].hasnans + + events = add_missing_service_dates( + events_dataframe=events, timestamp_key="timestamp" + ) + + # check that all service dates exist and are the same + assert not events["service_date"].hasnans + assert len(events["service_date"].unique()) == 1 diff --git a/python_src/tests/performance_manager/test_performance_manager.py b/python_src/tests/performance_manager/test_performance_manager.py index a3032cbb..96d44ddd 100644 --- a/python_src/tests/performance_manager/test_performance_manager.py +++ b/python_src/tests/performance_manager/test_performance_manager.py @@ -7,9 +7,6 @@ Iterator, List, Optional, - Sequence, - Tuple, - Union, Callable, ) @@ -17,8 +14,7 @@ import pytest import sqlalchemy as sa from _pytest.monkeypatch import MonkeyPatch -import pyarrow -from pyarrow import fs, parquet, csv, Table +from pyarrow import Table from lamp_py.performance_manager.flat_file import write_flat_files from lamp_py.performance_manager.l0_gtfs_static_load import ( @@ -62,15 +58,16 @@ from lamp_py.performance_manager.gtfs_utils import ( add_static_version_key_column, add_parent_station_column, + rail_routes_from_filepath, ) -from ..test_resources import springboard_dir, test_files_dir +from ..test_resources import springboard_dir, test_files_dir, csv_to_vp_parquet @lru_cache def test_files() -> List[str]: """ - collaps all of the files in the lamp test files dir into a list + collapse all of the files in the lamp test files dir into a list """ paths = [] @@ -150,31 +147,6 @@ def mock__get_static_parquet_paths( mock__get_static_parquet_paths, ) - def mock__get_pyarrow_table( - filename: Union[str, List[str]], - filters: Optional[Union[Sequence[Tuple], Sequence[List[Tuple]]]] = None, - ) -> Table: - logging.debug( - "Mock Get Pyarrow Table filename=%s, filters=%s", filename, filters - ) - active_fs = fs.LocalFileSystem() - - if isinstance(filename, list): - to_load = filename - else: - to_load = [filename] - - if len(to_load) == 0: - return Table.from_pydict({}) - - return parquet.ParquetDataset( - to_load, filesystem=active_fs, filters=filters - ).read_pandas() - - monkeypatch.setattr( - "lamp_py.aws.s3._get_pyarrow_table", mock__get_pyarrow_table - ) - # pylint: disable=R0913 # pylint too many arguments (more than 5) def mock__write_parquet_file( @@ -391,7 +363,8 @@ def test_gtfs_rt_processing( assert "RT_VEHICLE_POSITIONS" in path # check that we can load the parquet file into a dataframe correctly - positions = get_vp_dataframe(files["vp_paths"], db_manager) + route_ids = rail_routes_from_filepath(files["vp_paths"], db_manager) + positions = get_vp_dataframe(files["vp_paths"], route_ids) position_size = positions.shape[0] assert positions.shape[1] == 12 @@ -413,9 +386,7 @@ def test_gtfs_rt_processing( assert positions.shape[1] == 14 assert position_size > positions.shape[0] - trip_updates = get_and_unwrap_tu_dataframe( - files["tu_paths"], db_manager - ) + trip_updates = get_and_unwrap_tu_dataframe(files["tu_paths"], route_ids) trip_update_size = trip_updates.shape[0] assert trip_updates.shape[1] == 9 @@ -572,31 +543,17 @@ def test_whole_table( ) csv_file = os.path.join(test_files_dir, "vehicle_positions_flat_input.csv") - - vp_folder = "RT_VEHICLE_POSITIONS/year=2023/month=5/day=8/hour=11" - parquet_folder = tmp_path.joinpath(vp_folder) + parquet_folder = tmp_path.joinpath( + "RT_VEHICLE_POSITIONS/year=2023/month=5/day=8/hour=11" + ) parquet_folder.mkdir(parents=True) + parquet_file = str(parquet_folder.joinpath("flat_file.parquet")) + + csv_to_vp_parquet(csv_file, parquet_file) - parquet_file = parquet_folder.joinpath("flat_file.parquet") - - options = csv.ConvertOptions( - column_types={ - "current_status": pyarrow.string(), - "current_stop_sequence": pyarrow.int64(), - "stop_id": pyarrow.string(), - "vehicle_timestamp": pyarrow.int64(), - "direction_id": pyarrow.int64(), - "route_id": pyarrow.string(), - "start_date": pyarrow.string(), - "start_time": pyarrow.string(), - "vehicle_id": pyarrow.string(), - } - ) - table = csv.read_csv(csv_file, convert_options=options) - parquet.write_table(table, parquet_file) db_manager.add_metadata_paths( [ - str(parquet_file), + parquet_file, ] ) diff --git a/python_src/tests/test_files/pipeline_flat_out.csv b/python_src/tests/test_files/pipeline_flat_out.csv index 77960330..7c830a9a 100644 --- a/python_src/tests/test_files/pipeline_flat_out.csv +++ b/python_src/tests/test_files/pipeline_flat_out.csv @@ -114,7 +114,7 @@ stop_sequence,stop_id,parent_station,vp_move_timestamp,vp_stop_timestamp,directi 590,70158,place-boyls,1683547718,1683547846,True,East,Government Center,Green-B,Green-B,Green,20230508,26940,G-10030,8,55714680,3601-3838,55714680,32,128,418,206 600,70200,place-pktrm,1683547460,1683547522,True,East,Government Center,Green-B,Green-B,Green,20230508,26460,G-10094,5,55714679,3855-3665,55714679,63,62,,81 600,70200,place-pktrm,1683548157,1683548210,True,East,Government Center,Green-B,Green-B,Green,20230508,26706,G-10024,10,ADDED-1581518543,3809-3610,55714680,60,53,275,217 -600,70200,place-pktrm,1683547878,1683547929,True,East,Government Center,Green-B,Green-B,Green,20230508,26940,G-10030,8,55714680,3601-3838,55714680,66,51,410,323 +600,70200,place-pktrm,1683547878,1683547929,True,East,Government Center,Green-B,Green-B,Green,20230508,26940,G-10030,8,55714680,3601-3838,55714680,66,51,410,410 600,70200,place-pktrm,1683547672,1683547824,True,East,Government Center,Green-B,Green-B,Green,20230508,27106,G-10111,1,ADDED-1581518549,3848-3688,55714680,,,, 610,70201,place-gover,1683547585,1683547640,True,East,Government Center,Green-B,Green-B,Green,20230508,26460,G-10094,5,55714679,3855-3665,55714679,,55,, 610,70201,place-gover,1683548270,1683548326,True,East,Government Center,Green-B,Green-B,Green,20230508,26706,G-10024,10,ADDED-1581518543,3809-3610,55714680,,56,, diff --git a/python_src/tests/test_files/tu_missing_start_date.parquet b/python_src/tests/test_files/tu_missing_start_date.parquet new file mode 100644 index 0000000000000000000000000000000000000000..39eae0b310bae5aad986b43133d21bf6d17b0ae6 GIT binary patch literal 151318 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 literal 0 HcmV?d00001 diff --git a/python_src/tests/test_files/vp_missing_start_date.csv b/python_src/tests/test_files/vp_missing_start_date.csv new file mode 100644 index 00000000..8f8208bb --- /dev/null +++ b/python_src/tests/test_files/vp_missing_start_date.csv @@ -0,0 +1,20 @@ +current_status,current_stop_sequence,stop_id,vehicle_timestamp,direction_id,route_id,start_date,start_time,vehicle_id,trip_id,vehicle_label,vehicle_consist +STOPPED_AT,1,70059,1683547153,0,Blue,,07:38:00,B-54768A0A,55458882,0713, +INCOMING_AT,10,70057,,0,Blue,20230508,07:38:00,B-54768A0A,55458882,0713, +STOPPED_AT,10,70057,1683547246,0,Blue,,07:38:00,B-54768A0A,55458882,0713, +INCOMING_AT,20,70055,,0,Blue,20230508,07:38:00,B-54768A0A,55458882,0713, +IN_TRANSIT_TO,20,70055,1683547299,0,Blue,,07:38:00,B-54768A0A,55458882,0713, +STOPPED_AT,20,70055,,0,Blue,20230508,07:38:00,B-54768A0A,55458882,0713, +INCOMING_AT,30,70053,1683547429,0,Blue,,07:38:00,B-54768A0A,55458882,0713, +STOPPED_AT,30,70053,,0,Blue,20230508,07:38:00,B-54768A0A,55458882,0713, +INCOMING_AT,40,70051,1683547531,0,Blue,,07:38:00,B-54768A0A,55458882,0713, +STOPPED_AT,40,70051,,0,Blue,20230508,07:38:00,B-54768A0A,55458882,0713, +IN_TRANSIT_TO,50,70049,1683547652,0,Blue,,07:38:00,B-54768A0A,55458882,0713, +INCOMING_AT,50,70049,,0,Blue,20230508,07:38:00,B-54768A0A,55458882,0713, +STOPPED_AT,50,70049,1683547786,0,Blue,,07:38:00,B-54768A0A,55458882,0713, +IN_TRANSIT_TO,60,70047,,0,Blue,20230508,07:38:00,B-54768A0A,55458882,0713, +INCOMING_AT,60,70047,1683547846,0,Blue,,07:38:00,B-54768A0A,55458882,0713, +STOPPED_AT,60,70047,,0,Blue,20230508,07:38:00,B-54768A0A,55458882,0713, +IN_TRANSIT_TO,70,70045,1683547970,0,Blue,,07:38:00,B-54768A0A,55458882,0713, +INCOMING_AT,70,70045,,0,Blue,20230508,07:38:00,B-54768A0A,55458882,0713, +STOPPED_AT,70,70045,1683548133,0,Blue,,07:38:00,B-54768A0A,55458882,0713, \ No newline at end of file diff --git a/python_src/tests/test_resources.py b/python_src/tests/test_resources.py index 395c7c6d..962e783d 100644 --- a/python_src/tests/test_resources.py +++ b/python_src/tests/test_resources.py @@ -1,6 +1,32 @@ import os +import pyarrow +from pyarrow import csv, parquet test_files_dir = os.path.join(os.path.dirname(__file__), "test_files") incoming_dir = os.path.join(test_files_dir, "INCOMING") springboard_dir = os.path.join(test_files_dir, "SPRINGBOARD") + + +def csv_to_vp_parquet(csv_filepath: str, parquet_filepath: str) -> None: + """ + read vehicle position data in csv format and write it to a parquet file + """ + vp_csv_options = csv.ConvertOptions( + column_types={ + "current_status": pyarrow.string(), + "current_stop_sequence": pyarrow.int64(), + "stop_id": pyarrow.string(), + "vehicle_timestamp": pyarrow.int64(), + "direction_id": pyarrow.int64(), + "route_id": pyarrow.string(), + "trip_id": pyarrow.string(), + "start_date": pyarrow.string(), + "start_time": pyarrow.string(), + "vehicle_id": pyarrow.string(), + "vehicle_consist": pyarrow.string(), + } + ) + + table = csv.read_csv(csv_filepath, convert_options=vp_csv_options) + parquet.write_table(table, parquet_filepath)