Skip to content

Commit e97c4ea

Browse files
committed
Added unit test to check that the DirWatcher class initialises as expected
1 parent 84d2e02 commit e97c4ea

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

tests/client/test_watchdir.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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

Comments
 (0)