mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	"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.
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			983 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			983 B
		
	
	
	
		
			Python
		
	
	
	
	
	
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()
 |