35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
"""Test AIR internal utilities (under ray.air._internal)."""
|
|
|
|
import os
|
|
|
|
import pytest
|
|
|
|
import ray
|
|
from ray.air._internal.filelock import RAY_LOCKFILE_DIR, TempFileLock
|
|
|
|
|
|
def test_temp_file_lock(tmp_path, monkeypatch):
|
|
"""Test that the directory where temp file locks are saved can be configured
|
|
via the env variable that configures the global Ray temp dir."""
|
|
monkeypatch.setenv("RAY_TMPDIR", str(tmp_path))
|
|
assert str(tmp_path) in ray._common.utils.get_default_system_temp_dir()
|
|
with TempFileLock(path="abc.txt"):
|
|
assert RAY_LOCKFILE_DIR in os.listdir(tmp_path)
|
|
assert os.listdir(tmp_path / RAY_LOCKFILE_DIR)
|
|
|
|
|
|
def test_multiple_file_locks(tmp_path, monkeypatch):
|
|
"""Test that a new file lock is created for unique paths."""
|
|
monkeypatch.setenv("RAY_TMPDIR", str(tmp_path))
|
|
with TempFileLock(path="abc.txt"):
|
|
with TempFileLock(path="subdir/abc.txt"):
|
|
assert RAY_LOCKFILE_DIR in os.listdir(tmp_path)
|
|
# We should have 2 locks, one for abc.txt and one for subdir/abc.txt
|
|
assert len(os.listdir(tmp_path / RAY_LOCKFILE_DIR)) == 2
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
|
|
sys.exit(pytest.main(["-v", __file__]))
|