Lib.test.test_thread_jy.py Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jython-installer Show documentation
Show all versions of jython-installer Show documentation
Jython is an implementation of the high-level, dynamic, object-oriented
language Python written in 100% Pure Java, and seamlessly integrated with
the Java platform. It thus allows you to run Python on any Java platform.
import thread
import synchronize
import unittest
import test.test_support
from java.lang import Runnable, Thread
from java.util.concurrent import CountDownLatch
class AllocateLockTest(unittest.TestCase):
def test_lock_type(self):
"""thread.LockType should exist"""
t = thread.LockType
self.assertEquals(t, type(thread.allocate_lock()),
"thread.LockType has wrong value")
class SynchronizeTest(unittest.TestCase):
def test_make_synchronized(self):
doneSignal = CountDownLatch(10)
class SynchedRunnable(Runnable):
i = 0
def run(self):
self.i += 1
doneSignal.countDown()
run = synchronize.make_synchronized(run)
runner = SynchedRunnable()
for _ in xrange(10):
Thread(runner).start()
doneSignal.await()
self.assertEquals(10, runner.i)
def test_synchronized_callable(self):
self.assertTrue(callable(synchronize.make_synchronized(lambda: None)))
def test_main():
test.test_support.run_unittest(AllocateLockTest, SynchronizeTest)
if __name__ == "__main__":
test_main()