cpython/Lib/test/test_imp.py

72 lines
1.7 KiB
Python
Raw Normal View History

import imp
2006-10-03 20:23:14 -03:00
import unittest
from test import test_support
2006-10-03 20:23:14 -03:00
class LockTests(unittest.TestCase):
2006-10-03 20:23:14 -03:00
"""Very basic test of import lock functions."""
2006-10-03 20:23:14 -03:00
def verify_lock_state(self, expected):
2009-06-30 19:57:08 -03:00
self.assertEqual(imp.lock_held(), expected,
2006-10-03 20:23:14 -03:00
"expected imp.lock_held() to be %r" % expected)
def testLock(self):
LOOPS = 50
2006-10-03 20:23:14 -03:00
# 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()
self.verify_lock_state(lock_held_at_start)
2006-10-03 20:23:14 -03:00
for i in range(LOOPS):
imp.acquire_lock()
self.verify_lock_state(True)
2006-10-03 20:23:14 -03:00
for i in range(LOOPS):
imp.release_lock()
2006-10-03 20:23:14 -03:00
# The original state should be restored now.
self.verify_lock_state(lock_held_at_start)
if not lock_held_at_start:
try:
imp.release_lock()
except RuntimeError:
pass
else:
self.fail("release_lock() without lock should raise "
"RuntimeError")
class ReloadTests(unittest.TestCase):
"""Very basic tests to make sure that imp.reload() operates just like
reload()."""
def test_source(self):
import os
imp.reload(os)
def test_extension(self):
import time
imp.reload(time)
def test_builtin(self):
import marshal
imp.reload(marshal)
def test_main():
tests = [
ReloadTests,
]
try:
import thread
except ImportError:
pass
else:
tests.append(LockTests)
test_support.run_unittest(*tests)
if __name__ == "__main__":
test_main()