@@ -89,6 +89,48 @@ def test_request_sb_fixture(request):
89
89
assert result .matchreport ("test_request_sb_fixture" ).passed
90
90
91
91
92
+ def check_outcome_field (outcomes , field_name , expected_value ):
93
+ field_value = outcomes .get (field_name , 0 )
94
+ assert field_value == expected_value , (
95
+ "outcomes.%s has an unexpected value! "
96
+ 'Expected "%s" but got "%s"!'
97
+ % (field_name , expected_value , field_value )
98
+ )
99
+
100
+
101
+ def assert_outcomes (
102
+ result ,
103
+ passed = 1 ,
104
+ skipped = 0 ,
105
+ failed = 0 ,
106
+ xfailed = 0 ,
107
+ xpassed = 0 ,
108
+ rerun = 0 ,
109
+ ):
110
+ outcomes = result .parseoutcomes ()
111
+ check_outcome_field (outcomes , "passed" , passed )
112
+ check_outcome_field (outcomes , "skipped" , skipped )
113
+ check_outcome_field (outcomes , "failed" , failed )
114
+ check_outcome_field (outcomes , "xfailed" , xfailed )
115
+ check_outcome_field (outcomes , "xpassed" , xpassed )
116
+ check_outcome_field (outcomes , "rerun" , rerun )
117
+
118
+
119
+ def test_rerun_failures (testdir ):
120
+ testdir .makepyfile (
121
+ """
122
+ from seleniumbase import BaseCase
123
+ class MyTestCase(BaseCase):
124
+ def test_passing(self):
125
+ self.assert_equal('yes', 'yes')
126
+ def test_failing(self):
127
+ self.assert_equal('yes', 'no')
128
+ """
129
+ )
130
+ result = testdir .runpytest ("--headless" , "--reruns=1" , "--rs" , "-v" )
131
+ assert_outcomes (result , passed = 1 , failed = 1 , rerun = 1 )
132
+
133
+
92
134
def test_browser_launcher (testdir ):
93
135
testdir .makepyfile (
94
136
"""
0 commit comments