(self, pytester: Pytester)
| 77 | assert r == ["fin3", "fin1"] |
| 78 | |
| 79 | def test_teardown_multiple_fail(self, pytester: Pytester) -> None: |
| 80 | # Ensure the first exception is the one which is re-raised. |
| 81 | # Ideally both would be reported however. |
| 82 | def fin1(): |
| 83 | raise Exception("oops1") |
| 84 | |
| 85 | def fin2(): |
| 86 | raise Exception("oops2") |
| 87 | |
| 88 | item = pytester.getitem("def test_func(): pass") |
| 89 | ss = item.session._setupstate |
| 90 | ss.setup(item) |
| 91 | ss.addfinalizer(fin1, item) |
| 92 | ss.addfinalizer(fin2, item) |
| 93 | with pytest.raises(Exception) as err: |
| 94 | ss.teardown_exact(None) |
| 95 | assert err.value.args == ("oops2",) |
| 96 | |
| 97 | def test_teardown_multiple_scopes_one_fails(self, pytester: Pytester) -> None: |
| 98 | module_teardown = [] |
nothing calls this directly
no test coverage detected