Commit e0f18494 authored by Michal Čihař's avatar Michal Čihař

Test locking across processes

Signed-off-by: default avatarMichal Čihař <michal@cihar.com>
parent d0f3b504
......@@ -19,6 +19,7 @@
#
from unittest import TestCase
from multiprocessing import Process
from weblate.trans.filelock import FileLock, FileLockException
......@@ -87,3 +88,24 @@ class LockTest(TestCase):
lock.acquire()
lockfile.close()
lock.release()
def second_lock(self):
lock = FileLock('lock-test', timeout=0)
lock.acquire()
lock.release()
def test_process(self):
'''
Test of double locking.
'''
lock = FileLock('lock-test')
lock.acquire()
process = Process(target=self.second_lock)
process.start()
process.join()
self.assertEqual(process.exitcode, 1)
lock.release()
process = Process(target=self.second_lock)
process.start()
process.join()
self.assertEqual(process.exitcode, 0)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment