Skip to content

Commit fcd580a

Browse files
committed
user proper string for warnings out the outcome object depending on pytest version
1 parent 69bc737 commit fcd580a

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

test_pytest_rerunfailures.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from unittest import mock
2+
import pkg_resources
23
import pytest
34
import random
45
import time
56

67

78
pytest_plugins = 'pytester'
9+
pytest_version_gte_53 = pkg_resources.parse_version(pytest.__version__) >= pkg_resources.parse_version('5.3')
810

911

1012
def temporary_failure(count=1):
@@ -19,15 +21,20 @@ def temporary_failure(count=1):
1921

2022

2123
def assert_outcomes(result, passed=1, skipped=0, failed=0, error=0, xfailed=0,
22-
xpassed=0, rerun=0, warning=0):
24+
xpassed=0, rerun=0, warnings=0):
2325
outcomes = result.parseoutcomes()
2426
assert outcomes.get('passed', 0) == passed
2527
assert outcomes.get('skipped', 0) == skipped
2628
assert outcomes.get('failed', 0) == failed
2729
assert outcomes.get('xfailed', 0) == xfailed
2830
assert outcomes.get('xpassed', 0) == xpassed
2931
assert outcomes.get('rerun', 0) == rerun
30-
assert outcomes.get('warning', 0) == warning
32+
33+
warnings_key = 'warnings'
34+
if warnings <= 1 and pytest_version_gte_53:
35+
# due to https://github.com/pytest-dev/pytest/pull/5990
36+
warnings_key = 'warning'
37+
assert outcomes.get(warnings_key, 0) == warnings
3138

3239

3340
def test_error_when_run_with_pdb(testdir):
@@ -245,7 +252,7 @@ def test_fail():
245252

246253
time.sleep.assert_called_with(delay_time)
247254

248-
assert_outcomes(result, passed=0, failed=1, rerun=3, warning=num_warnings)
255+
assert_outcomes(result, passed=0, failed=1, rerun=3, warnings=num_warnings)
249256

250257
if num_warnings:
251258
result.stdout.fnmatch_lines('*UserWarning: Delay time between re-runs cannot be < 0. Using default value: 0')
@@ -270,7 +277,7 @@ def test_fail_two():
270277

271278
time.sleep.assert_called_with(delay_time)
272279

273-
assert_outcomes(result, passed=0, failed=1, rerun=2, warning=num_warnings)
280+
assert_outcomes(result, passed=0, failed=1, rerun=2, warnings=num_warnings)
274281

275282
if num_warnings:
276283
result.stdout.fnmatch_lines('*UserWarning: Delay time between re-runs cannot be < 0. Using default value: 0')

0 commit comments

Comments
 (0)