summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRan Benita <ran@unusedvar.com>2021-01-01 13:06:50 +0200
committerRan Benita <ran@unusedvar.com>2021-01-24 14:08:39 +0200
commit0d4121d24bf4c1efdee67a45b831ccdbdda78f2c (patch)
tree1b88bae41f396c24664ebe79074984169bd19a31 /src
parentbb3d43c9a6d16174a05058686b9460ceff911e5a (diff)
downloadpytest-0d4121d24bf4c1efdee67a45b831ccdbdda78f2c.tar.gz
runner: collapse exception handling in SetupState.teardown_exact()
This is equivalent but simpler.
Diffstat (limited to 'src')
-rw-r--r--src/_pytest/runner.py37
1 files changed, 14 insertions, 23 deletions
diff --git a/src/_pytest/runner.py b/src/_pytest/runner.py
index c221b42a0..3aa0a6c4b 100644
--- a/src/_pytest/runner.py
+++ b/src/_pytest/runner.py
@@ -443,29 +443,20 @@ class SetupState:
while self.stack:
if self.stack == needed_collectors[: len(self.stack)]:
break
- try:
- colitem = self.stack.pop()
- finalizers = self._finalizers.pop(colitem)
- finalizers.insert(0, colitem.teardown)
- inner_exc = None
- while finalizers:
- fin = finalizers.pop()
- try:
- fin()
- except TEST_OUTCOME as e:
- # XXX Only first exception will be seen by user,
- # ideally all should be reported.
- if inner_exc is None:
- inner_exc = e
- for colitem in self._finalizers:
- assert colitem in self.stack
- if inner_exc:
- raise inner_exc
- except TEST_OUTCOME as e:
- # XXX Only first exception will be seen by user,
- # ideally all should be reported.
- if exc is None:
- exc = e
+ colitem = self.stack.pop()
+ finalizers = self._finalizers.pop(colitem)
+ finalizers.insert(0, colitem.teardown)
+ while finalizers:
+ fin = finalizers.pop()
+ try:
+ fin()
+ except TEST_OUTCOME as e:
+ # XXX Only first exception will be seen by user,
+ # ideally all should be reported.
+ if exc is None:
+ exc = e
+ for colitem in self._finalizers:
+ assert colitem in self.stack
if exc:
raise exc
if nextitem is None: