In unconditional except clauses, don't catch KeyboardInterrupt -- it's

annoying that often you have to hit ^C numerous times before it
works.  The solution: before the "except:" clause, insert "except
KeyboardInterrupt: raise".  This propagates KeyboardInterrupt out,
stopping the test in its tracks.
This commit is contained in:
Guido van Rossum 2001-12-07 03:39:34 +00:00
parent eb4b7bad33
commit 202dd1ef42

View file

@ -202,6 +202,8 @@ class TestCase:
try: try:
try: try:
self.setUp() self.setUp()
except KeyboardInterrupt:
raise
except: except:
result.addError(self, self.__exc_info()) result.addError(self, self.__exc_info())
return return
@ -212,11 +214,15 @@ class TestCase:
ok = 1 ok = 1
except self.failureException, e: except self.failureException, e:
result.addFailure(self, self.__exc_info()) result.addFailure(self, self.__exc_info())
except KeyboardInterrupt:
raise
except: except:
result.addError(self, self.__exc_info()) result.addError(self, self.__exc_info())
try: try:
self.tearDown() self.tearDown()
except KeyboardInterrupt:
raise
except: except:
result.addError(self, self.__exc_info()) result.addError(self, self.__exc_info())
ok = 0 ok = 0