home *** CD-ROM | disk | FTP | other *** search
- import imp
- from test.test_support import TestFailed
-
- def verify_lock_state(expected):
- if imp.lock_held() != expected:
- raise TestFailed("expected imp.lock_held() to be %r" % expected)
-
- def testLock():
- LOOPS = 50
-
- # The import lock may already be held, e.g. if the test suite is run
- # via "import test.autotest".
- lock_held_at_start = imp.lock_held()
- verify_lock_state(lock_held_at_start)
-
- for i in range(LOOPS):
- imp.acquire_lock()
- verify_lock_state(True)
-
- for i in range(LOOPS):
- imp.release_lock()
-
- # The original state should be restored now.
- verify_lock_state(lock_held_at_start)
-
- if not lock_held_at_start:
- try:
- imp.release_lock()
- except RuntimeError:
- pass
- else:
- raise TestFailed("release_lock() without lock should raise "
- "RuntimeError")
-
- def test_main():
- testLock()
-
- if __name__ == "__main__":
- test_main()
-