diff --git a/src/murfey/server/api/session_shared.py b/src/murfey/server/api/session_shared.py index 49362d9b..29607d98 100644 --- a/src/murfey/server/api/session_shared.py +++ b/src/murfey/server/api/session_shared.py @@ -168,7 +168,8 @@ def find_upstream_visits(session_id: int, db: SQLModelSession): # Looks for visit name in file path current_upstream_visits = {} for visit_path in Path(upstream_data_dir).glob(f"{visit_name.split('-')[0]}-*"): - current_upstream_visits[visit_path.name] = visit_path + if visit_path.is_dir(): + current_upstream_visits[visit_path.name] = visit_path upstream_visits[upstream_instrument] = current_upstream_visits return upstream_visits diff --git a/tests/server/api/test_session_shared.py b/tests/server/api/test_session_shared.py index 7f971b94..c0f4c109 100644 --- a/tests/server/api/test_session_shared.py +++ b/tests/server/api/test_session_shared.py @@ -30,14 +30,20 @@ def test_find_upstream_visits( # Create mock upstream visit directories and necessary data structures upstream_visits = {} upstream_data_dirs = {} - for n in range(5): + for n in range(10): upstream_instrument = f"{instrument_name}{str(n).zfill(2)}" upstream_visit = ( tmp_path / f"{upstream_instrument}/data/2020/{visit_name_root}-{n}" ) - upstream_visit.mkdir(parents=True, exist_ok=True) - upstream_visits[upstream_instrument] = {upstream_visit.stem: upstream_visit} - upstream_data_dirs[upstream_instrument] = upstream_visit.parent + # Create some as directories, and some as files + if n % 2: + # Only directories should be picked up + upstream_visit.mkdir(parents=True, exist_ok=True) + upstream_visits[upstream_instrument] = {upstream_visit.stem: upstream_visit} + upstream_data_dirs[upstream_instrument] = upstream_visit.parent + else: + upstream_visit.parent.mkdir(parents=True, exist_ok=True) + upstream_visit.touch(exist_ok=True) # Mock the MachineConfig for this instrument mock_machine_config = MagicMock(spec=MachineConfig)