|
| 1 | +import os |
| 2 | +import queue |
| 3 | +import threading |
| 4 | +from pathlib import Path |
| 5 | + |
| 6 | +import pytest |
| 7 | + |
| 8 | +from murfey.client.watchdir import DirWatcher |
| 9 | +from tests.conftest import ExampleVisit |
| 10 | + |
| 11 | + |
| 12 | +@pytest.fixture |
| 13 | +def visit_dir(tmp_path: Path): |
| 14 | + visit_name = f"{ExampleVisit.proposal_code}{ExampleVisit.proposal_number}-{ExampleVisit.visit_number}" |
| 15 | + visit_dir = tmp_path / "data" / "2025" / visit_name |
| 16 | + visit_dir.mkdir(parents=True, exist_ok=True) |
| 17 | + return visit_dir |
| 18 | + |
| 19 | + |
| 20 | +def test_dirwatcher_initialises(visit_dir: Path): |
| 21 | + # Check that the DirWatcher initialises with the default attributes |
| 22 | + watcher = DirWatcher(path=str(visit_dir)) |
| 23 | + assert watcher._basepath == os.fspath(visit_dir) |
| 24 | + assert watcher._lastscan == {} |
| 25 | + assert watcher._file_candidates == {} |
| 26 | + assert watcher._statusbar is None |
| 27 | + assert watcher.settling_time == 60 |
| 28 | + assert watcher._appearance_time is None |
| 29 | + assert watcher._substrings_blacklist == {} |
| 30 | + assert watcher._transfer_all is True |
| 31 | + assert watcher._modification_overwrite is None |
| 32 | + assert isinstance(watcher._init_time, float) |
| 33 | + assert isinstance(watcher.queue, queue.Queue) |
| 34 | + assert isinstance(watcher.thread, threading.Thread) |
| 35 | + assert watcher._stopping is False |
| 36 | + assert watcher._halt_thread is False |
| 37 | + |
| 38 | + # Check that the string representation is as expected |
| 39 | + assert str(watcher) == f"<DirWatcher ({os.fspath(str(visit_dir))})>" |
| 40 | + |
| 41 | + |
| 42 | +@pytest.mark.skip |
| 43 | +def test_scan_directory(): |
| 44 | + pass |
0 commit comments