31 lines
799 B
Python
31 lines
799 B
Python
|
|
import sys
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
import pytest
|
||
|
|
|
||
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
|
||
|
|
|
||
|
|
from llamacppctl.lock_ops import FileLock, LockError # noqa: E402
|
||
|
|
|
||
|
|
|
||
|
|
def test_lock_acquire_and_release(tmp_path):
|
||
|
|
lock_path = tmp_path / "test.lock"
|
||
|
|
with FileLock(lock_path):
|
||
|
|
assert lock_path.exists()
|
||
|
|
# released cleanly, can acquire again
|
||
|
|
with FileLock(lock_path):
|
||
|
|
pass
|
||
|
|
|
||
|
|
|
||
|
|
def test_lock_busy_raises(tmp_path):
|
||
|
|
lock_path = tmp_path / "busy.lock"
|
||
|
|
with FileLock(lock_path):
|
||
|
|
with pytest.raises(LockError):
|
||
|
|
with FileLock(lock_path):
|
||
|
|
pass
|
||
|
|
|
||
|
|
|
||
|
|
def test_lock_creates_parent_dirs(tmp_path):
|
||
|
|
lock_path = tmp_path / "nested" / "dir" / "test.lock"
|
||
|
|
with FileLock(lock_path):
|
||
|
|
assert lock_path.exists()
|