[Python-checkins] python/dist/src/Lib/test test_imp.py,1.3,1.4

tim_one@users.sourceforge.net tim_one@users.sourceforge.net
Sat, 26 Apr 2003 07:31:28 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv23267/python/Lib/test

Modified Files:
	test_imp.py 
Log Message:
Rewrote.  As reported on c.l.py, when the test suite is run via
"import test.autotest", temp_imp failed because the import lock was
still held at the test's end (the test assumed it wouldn't be), and
then a RuntimeError got raised at the end of the entire suite run because
test_imp cleared the import lock as a side effect of trying to test that
the import lock wasn't held (but a legitimate import is in progress,
so the lock should be held, and the import machinery complained when it
found that the lock was unexpectedly cleareed).

Also removed the unittest scaffolding.  It didn't buy anything here, and
the test was raising regrtest's TestFailed instead of using the unittest
failure-reporting mechanisms.


Index: test_imp.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_imp.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** test_imp.py	17 Feb 2003 22:38:56 -0000	1.3
--- test_imp.py	26 Apr 2003 14:31:24 -0000	1.4
***************
*** 1,28 ****
- 
  import imp
! import unittest
! from test.test_support import TestFailed, run_unittest
  
! class ImpLock(unittest.TestCase):
  
!     # XXX this test is woefully inadequate, please fix me
!     def testLock(self):
!         LOOPS = 50
!         for i in range(LOOPS):
!             imp.acquire_lock()
!         for i in range(LOOPS):
!             imp.release_lock()
  
!         for i in range(LOOPS):
!             try:
!                 imp.release_lock()
!             except RuntimeError:
!                 pass
!             else:
!                 raise TestFailed, \
!                     "release_lock() without lock should raise RuntimeError"
  
  def test_main():
!     run_unittest(ImpLock)
  
  if __name__ == "__main__":
--- 1,38 ----
  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__":