Пример #1
0
def test_lock_can_be_breaked(tmpdir):
    lock = ExpiringLinkLockFile(str(tmpdir))
    lock.acquire()
    lock.break_lock()

    second_lock = ExpiringLinkLockFile(str(tmpdir))
    second_lock.acquire()
    assert second_lock.i_am_locking()
    assert not lock.i_am_locking()
Пример #2
0
def test_cannot_acquire_lock_if_it_is_locked(tmpdir):
    lock = ExpiringLinkLockFile(str(tmpdir))
    lock.acquire()

    second_lock = ExpiringLinkLockFile(str(tmpdir))

    with pytest.raises(LockTimeout):
        second_lock.acquire(timeout=1)
    assert second_lock.is_locked()
    assert not second_lock.i_am_locking()
Пример #3
0
def test_release_if_locking_unlocks(tmpdir):
    lock_name = str(tmpdir.join('lockfile'))

    lock = ExpiringLinkLockFile(lock_name)
    lock.acquire()
    lock.release_if_locking()

    second_lock = ExpiringLinkLockFile(lock_name)
    second_lock.acquire(timeout=1)
    assert second_lock.is_locked()
    assert second_lock.i_am_locking()
    assert not lock.i_am_locking()
Пример #4
0
 def setup_lock(self):
     lock_path = self.lock_path()
     self.lock_timeout = self.config.getint('lock', 'timeout')
     self.lock_expiration = self.config.getint('lock', 'expiration')
     self.lock = ExpiringLinkLockFile(lock_path)
Пример #5
0
def test_can_acquire_lock(tmpdir):
    lock = ExpiringLinkLockFile(str(tmpdir))
    lock.acquire()
    assert lock.i_am_locking()
Пример #6
0
def test_lock_expires(tmpdir):
    lock = ExpiringLinkLockFile(str(tmpdir))
    lock.acquire()
    time.sleep(1)
    assert lock.expired(1)
    assert not lock.expired(2)