[svn r38113] Make fatal() attribute which makes boxed tests catch SystemExit, while

in-process let it slide.

--HG--
branch : trunk
This commit is contained in:
fijal 2007-02-07 21:04:01 +01:00
parent 632cc727e4
commit 1e6016ccc2
1 changed files with 12 additions and 1 deletions

View File

@ -23,12 +23,17 @@ class RunExecutor(object):
def run(self): def run(self):
self.item.run() self.item.run()
def fatals(self):
return (SystemExit, KeyboardInterrupt)
def execute(self): def execute(self):
try: try:
self.run() self.run()
outcome = Outcome() outcome = Outcome()
except Skipped, e: except Skipped, e:
outcome = Outcome(skipped=str(e)) outcome = Outcome(skipped=str(e))
except self.fatals():
raise
except: except:
excinfo = py.code.ExceptionInfo() excinfo = py.code.ExceptionInfo()
if isinstance(self.item, py.test.Function): if isinstance(self.item, py.test.Function):
@ -79,6 +84,9 @@ class BoxExecutor(RunExecutor):
""" """
wraps = True wraps = True
def fatals(self):
return None
def execute(self): def execute(self):
def fun(): def fun():
outcome = RunExecutor.execute(self) outcome = RunExecutor.execute(self)
@ -101,6 +109,9 @@ class AsyncExecutor(RunExecutor):
""" """
wraps = True wraps = True
def fatals(self):
return None
def execute(self): def execute(self):
def fun(): def fun():
outcome = RunExecutor.execute(self) outcome = RunExecutor.execute(self)