zjowowen's picture
init space
079c32c
raw
history blame contribute delete
956 Bytes
import pytest
import numpy as np
from collections import deque
from ding.utils import LockContext, LockContextType, get_rw_file_lock
@pytest.mark.unittest
def test_usage():
lock = LockContext(LockContextType.PROCESS_LOCK)
queue = deque(maxlen=10)
data = np.random.randn(4)
with lock:
queue.append(np.copy(data))
with lock:
output = queue.popleft()
assert (output == data).all()
lock.acquire()
queue.append(np.copy(data))
lock.release()
lock.acquire()
output = queue.popleft()
lock.release()
assert (output == data).all()
@pytest.mark.unittest
def test_get_rw_file_lock():
path = 'tmp.npy'
# TODO real read-write case
read_lock = get_rw_file_lock(path, 'read')
write_lock = get_rw_file_lock(path, 'write')
with write_lock:
np.save(path, np.random.randint(0, 1, size=(3, 4)))
with read_lock:
data = np.load(path)
assert data.shape == (3, 4)