Skip to content

Commit c555b12

Browse files
authored
Fix SetupState breakage with upcoming pytest 6.3 (#151)
pytest 6.3 makes some changes to the SetupState class, adjust to that.
1 parent 8f15199 commit c555b12

File tree

4 files changed

+27
-9
lines changed

4 files changed

+27
-9
lines changed

.github/workflows/test.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ jobs:
3232
"5.4.*",
3333
"6.0.*",
3434
"6.1.*",
35+
"6.2.*",
36+
"master",
3537
]
3638
steps:
3739
- uses: actions/checkout@v2
@@ -58,7 +60,11 @@ jobs:
5860
- name: Install dependencies
5961
run: |
6062
python -m pip install -U pip
61-
python -m pip install pytest==${{ matrix.pytest-version }}
63+
if [[ '${{ matrix.pytest-version }}' == 'master' ]]; then
64+
python -m pip install git+https://github.com/pytest-dev/pytest.git@master#egg=pytest
65+
else
66+
python -m pip install pytest==${{ matrix.pytest-version }}
67+
fi
6268
python -m pip install -e .
6369
6470
- name: Tests

CHANGES.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ Features
1818
- Add support for Python 3.9.
1919
(Thanks to `@digitronik`_ for the PR)
2020

21+
- Add support for pytest 6.3.
22+
(Thanks to `@bluetech`_ for the PR)
23+
2124
Other changes
2225
+++++++++++++
2326

@@ -26,6 +29,7 @@ Other changes
2629

2730
.. _@BeyondEvil: https://github.com/BeyondEvil
2831
.. _@digitronik: https://github.com/digitronik
32+
.. _@bluetech: https://github.com/bluetech
2933

3034
9.1.1 (2020-09-29)
3135
------------------

pytest_rerunfailures.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
pytest.__version__
2222
) >= pkg_resources.parse_version("5.4")
2323

24+
PYTEST_GTE_63 = pkg_resources.parse_version(
25+
pytest.__version__
26+
) >= pkg_resources.parse_version("6.3.0.dev")
27+
2428

2529
def works_with_current_xdist():
2630
"""Returns compatibility with installed pytest-xdist version.
@@ -205,15 +209,17 @@ def _remove_cached_results_from_failed_fixtures(item):
205209

206210
def _remove_failed_setup_state_from_session(item):
207211
"""
208-
Note: remove all _prepare_exc attribute from every col in stack of
209-
_setupstate and cleaning the stack itself
212+
Note: remove all failures from every node in _setupstate stack
213+
and clean the stack itself
210214
"""
211-
prepare_exc = "_prepare_exc"
212-
setup_state = getattr(item.session, "_setupstate")
213-
for col in setup_state.stack:
214-
if hasattr(col, prepare_exc):
215-
delattr(col, prepare_exc)
216-
setup_state.stack = list()
215+
setup_state = item.session._setupstate
216+
if PYTEST_GTE_63:
217+
setup_state.stack = {}
218+
else:
219+
for node in setup_state.stack:
220+
if hasattr(node, "_prepare_exc"):
221+
del node._prepare_exc
222+
setup_state.stack = []
217223

218224

219225
def _should_hard_fail_on_error(session_config, report):

tox.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ deps =
2424
pytest54: pytest==5.4.*
2525
pytest60: pytest==6.0.*
2626
pytest61: pytest==6.1.*
27+
pytest62: pytest==6.2.*
28+
pytestmaster: git+https://github.com/pytest-dev/pytest.git@master#egg=pytest
2729

2830
[testenv:linting]
2931
basepython = python3

0 commit comments

Comments
 (0)