diff options
author | Ran Benita <ran@unusedvar.com> | 2021-01-01 13:06:50 +0200 |
---|---|---|
committer | Ran Benita <ran@unusedvar.com> | 2021-01-24 14:08:39 +0200 |
commit | 0d4121d24bf4c1efdee67a45b831ccdbdda78f2c (patch) | |
tree | 1b88bae41f396c24664ebe79074984169bd19a31 /src/_pytest | |
parent | bb3d43c9a6d16174a05058686b9460ceff911e5a (diff) | |
download | pytest-0d4121d24bf4c1efdee67a45b831ccdbdda78f2c.tar.gz |
runner: collapse exception handling in SetupState.teardown_exact()
This is equivalent but simpler.
Diffstat (limited to 'src/_pytest')
-rw-r--r-- | src/_pytest/runner.py | 37 |
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: |