Update lock managet app
Add keyword arguments. Sort imports. Move settings and test literals to their own module. Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
This commit is contained in:
@@ -7,51 +7,53 @@ from django.utils.module_loading import import_string
|
||||
|
||||
from ..exceptions import LockError
|
||||
|
||||
TEST_LOCK_1 = 'test lock 1'
|
||||
from .literals import TEST_LOCK_NAME
|
||||
|
||||
|
||||
class FileLockTestCase(TestCase):
|
||||
backend_string = 'mayan.apps.lock_manager.backends.file_lock.FileLock'
|
||||
|
||||
def setUp(self):
|
||||
self.locking_backend = import_string(self.backend_string)
|
||||
self.locking_backend = import_string(dotted_path=self.backend_string)
|
||||
|
||||
def test_exclusive(self):
|
||||
lock_1 = self.locking_backend.acquire_lock(name=TEST_LOCK_1)
|
||||
lock_1 = self.locking_backend.acquire_lock(name=TEST_LOCK_NAME)
|
||||
with self.assertRaises(LockError):
|
||||
self.locking_backend.acquire_lock(name=TEST_LOCK_1)
|
||||
self.locking_backend.acquire_lock(name=TEST_LOCK_NAME)
|
||||
|
||||
# Cleanup
|
||||
lock_1.release()
|
||||
|
||||
def test_release(self):
|
||||
lock_1 = self.locking_backend.acquire_lock(name=TEST_LOCK_1)
|
||||
lock_1 = self.locking_backend.acquire_lock(name=TEST_LOCK_NAME)
|
||||
lock_1.release()
|
||||
lock_2 = self.locking_backend.acquire_lock(name=TEST_LOCK_1)
|
||||
lock_2 = self.locking_backend.acquire_lock(name=TEST_LOCK_NAME)
|
||||
|
||||
# Cleanup
|
||||
lock_2.release()
|
||||
|
||||
def test_timeout_expired(self):
|
||||
self.locking_backend.acquire_lock(name=TEST_LOCK_1, timeout=1)
|
||||
self.locking_backend.acquire_lock(name=TEST_LOCK_NAME, timeout=1)
|
||||
|
||||
# lock_1 not release and not expired, should raise LockError
|
||||
with self.assertRaises(LockError):
|
||||
self.locking_backend.acquire_lock(name=TEST_LOCK_1)
|
||||
self.locking_backend.acquire_lock(name=TEST_LOCK_NAME)
|
||||
|
||||
time.sleep(1.01)
|
||||
# lock_1 not release but has expired, should not raise LockError
|
||||
lock_2 = self.locking_backend.acquire_lock(name=TEST_LOCK_1)
|
||||
lock_2 = self.locking_backend.acquire_lock(name=TEST_LOCK_NAME)
|
||||
|
||||
# Cleanup
|
||||
lock_2.release()
|
||||
|
||||
def test_double_release(self):
|
||||
lock_1 = self.locking_backend.acquire_lock(name=TEST_LOCK_1)
|
||||
lock_1 = self.locking_backend.acquire_lock(name=TEST_LOCK_NAME)
|
||||
lock_1.release()
|
||||
|
||||
def test_release_expired(self):
|
||||
lock_1 = self.locking_backend.acquire_lock(name=TEST_LOCK_1, timeout=1)
|
||||
lock_1 = self.locking_backend.acquire_lock(
|
||||
name=TEST_LOCK_NAME, timeout=1
|
||||
)
|
||||
time.sleep(1.01)
|
||||
lock_1.release()
|
||||
# No exception is raised even though the lock has expired.
|
||||
@@ -60,11 +62,13 @@ class FileLockTestCase(TestCase):
|
||||
# would be successfull, even after an extended lapse of time
|
||||
|
||||
def test_release_expired_reaquired(self):
|
||||
self.locking_backend.acquire_lock(name=TEST_LOCK_1, timeout=1)
|
||||
self.locking_backend.acquire_lock(name=TEST_LOCK_NAME, timeout=1)
|
||||
time.sleep(1.01)
|
||||
# TEST_LOCK_1 is expired so trying to acquire it should not return an
|
||||
# error.
|
||||
lock_2 = self.locking_backend.acquire_lock(name=TEST_LOCK_1, timeout=1)
|
||||
# TEST_LOCK_NAME is expired so trying to acquire it should not return
|
||||
# an error.
|
||||
lock_2 = self.locking_backend.acquire_lock(
|
||||
name=TEST_LOCK_NAME, timeout=1
|
||||
)
|
||||
|
||||
# Cleanup
|
||||
lock_2.release()
|
||||
|
||||
Reference in New Issue
Block a user