Skip to content

Commit e292f91

Browse files
authored
Restrict Upstream Visit Search to Just Directories (#692)
* Added an additional check to see if the glob match is an actual directory * Update tests to ensure that only directories are picked up and returned
1 parent 0158ee6 commit e292f91

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

src/murfey/server/api/session_shared.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,8 @@ def find_upstream_visits(session_id: int, db: SQLModelSession):
168168
# Looks for visit name in file path
169169
current_upstream_visits = {}
170170
for visit_path in Path(upstream_data_dir).glob(f"{visit_name.split('-')[0]}-*"):
171-
current_upstream_visits[visit_path.name] = visit_path
171+
if visit_path.is_dir():
172+
current_upstream_visits[visit_path.name] = visit_path
172173
upstream_visits[upstream_instrument] = current_upstream_visits
173174
return upstream_visits
174175

tests/server/api/test_session_shared.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,20 @@ def test_find_upstream_visits(
3030
# Create mock upstream visit directories and necessary data structures
3131
upstream_visits = {}
3232
upstream_data_dirs = {}
33-
for n in range(5):
33+
for n in range(10):
3434
upstream_instrument = f"{instrument_name}{str(n).zfill(2)}"
3535
upstream_visit = (
3636
tmp_path / f"{upstream_instrument}/data/2020/{visit_name_root}-{n}"
3737
)
38-
upstream_visit.mkdir(parents=True, exist_ok=True)
39-
upstream_visits[upstream_instrument] = {upstream_visit.stem: upstream_visit}
40-
upstream_data_dirs[upstream_instrument] = upstream_visit.parent
38+
# Create some as directories, and some as files
39+
if n % 2:
40+
# Only directories should be picked up
41+
upstream_visit.mkdir(parents=True, exist_ok=True)
42+
upstream_visits[upstream_instrument] = {upstream_visit.stem: upstream_visit}
43+
upstream_data_dirs[upstream_instrument] = upstream_visit.parent
44+
else:
45+
upstream_visit.parent.mkdir(parents=True, exist_ok=True)
46+
upstream_visit.touch(exist_ok=True)
4147

4248
# Mock the MachineConfig for this instrument
4349
mock_machine_config = MagicMock(spec=MachineConfig)

0 commit comments

Comments
 (0)