11from unittest import mock
2+ import pkg_resources
23import pytest
34import random
45import time
56
67
78pytest_plugins = 'pytester'
9+ pytest_version_gte_53 = pkg_resources .parse_version (pytest .__version__ ) >= pkg_resources .parse_version ('5.3' )
810
911
1012def temporary_failure (count = 1 ):
@@ -19,15 +21,20 @@ def temporary_failure(count=1):
1921
2022
2123def 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
3340def 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