1
1
#! /usr/bin/env py.test
2
2
3
3
import sys
4
+ import textwrap
4
5
5
6
import pytest
6
7
7
8
9
+ def assert_outcomes (run_result , outcomes ):
10
+ formatted_output = format_run_result_output_for_assert (run_result )
11
+
12
+ try :
13
+ outcomes = run_result .parseoutcomes ()
14
+ except ValueError :
15
+ assert False , formatted_output
16
+
17
+ for name , value in outcomes .items ():
18
+ assert outcomes .get (name ) == value , formatted_output
19
+
20
+
21
+ def format_run_result_output_for_assert (run_result ):
22
+ return textwrap .dedent ('''\
23
+
24
+ ---- stdout
25
+ {0}
26
+ ---- stderr
27
+ {1}
28
+ ----''' ).format (
29
+ run_result .stdout .str (),
30
+ run_result .stderr .str (),
31
+ )
32
+
33
+
8
34
def skip_if_reactor_not (expected_reactor ):
9
35
actual_reactor = pytest .config .getoption ('reactor' )
10
36
return pytest .mark .skipif (
@@ -32,8 +58,7 @@ def doit():
32
58
return d
33
59
""" )
34
60
rr = testdir .run (sys .executable , "-m" , "pytest" )
35
- outcomes = rr .parseoutcomes ()
36
- assert outcomes .get ("failed" ) == 1
61
+ assert_outcomes (rr , {'failed' : 1 })
37
62
38
63
39
64
def test_succeed_later (testdir ):
@@ -46,8 +71,7 @@ def test_succeed():
46
71
return d
47
72
""" )
48
73
rr = testdir .run (sys .executable , "-m" , "pytest" )
49
- outcomes = rr .parseoutcomes ()
50
- assert outcomes .get ("passed" ) == 1
74
+ assert_outcomes (rr , {'passed' : 1 })
51
75
52
76
53
77
def test_non_deferred (testdir ):
@@ -58,8 +82,7 @@ def test_succeed():
58
82
return 42
59
83
""" )
60
84
rr = testdir .run (sys .executable , "-m" , "pytest" )
61
- outcomes = rr .parseoutcomes ()
62
- assert outcomes .get ("passed" ) == 1
85
+ assert_outcomes (rr , {'passed' : 1 })
63
86
64
87
65
88
def test_exception (testdir ):
@@ -68,8 +91,7 @@ def test_more_fail():
68
91
raise RuntimeError("foo")
69
92
""" )
70
93
rr = testdir .run (sys .executable , "-m" , "pytest" )
71
- outcomes = rr .parseoutcomes ()
72
- assert outcomes .get ("failed" ) == 1
94
+ assert_outcomes (rr , {'failed' : 1 })
73
95
74
96
75
97
def test_inlineCallbacks (testdir ):
@@ -91,9 +113,7 @@ def test_succeed(foo):
91
113
raise RuntimeError("baz")
92
114
""" )
93
115
rr = testdir .run (sys .executable , "-m" , "pytest" , "-v" )
94
- outcomes = rr .parseoutcomes ()
95
- assert outcomes .get ("passed" ) == 2
96
- assert outcomes .get ("failed" ) == 1
116
+ assert_outcomes (rr , {'passed' : 2 , 'failed' : 1 })
97
117
98
118
99
119
def test_twisted_greenlet (testdir ):
@@ -115,8 +135,7 @@ def test_MAIN():
115
135
116
136
""" )
117
137
rr = testdir .run (sys .executable , "-m" , "pytest" , "-v" )
118
- outcomes = rr .parseoutcomes ()
119
- assert outcomes .get ("passed" ) == 1
138
+ assert_outcomes (rr , {'passed' : 1 })
120
139
121
140
122
141
@skip_if_reactor_not ('default' )
@@ -140,8 +159,7 @@ def test_succeed():
140
159
return d
141
160
""" )
142
161
rr = testdir .run (sys .executable , "-m" , "pytest" , "-v" )
143
- outcomes = rr .parseoutcomes ()
144
- assert outcomes .get ("passed" ) == 1
162
+ assert_outcomes (rr , {'passed' : 1 })
145
163
146
164
147
165
@skip_if_reactor_not ('qt5reactor' )
@@ -171,8 +189,7 @@ def test_succeed():
171
189
return d
172
190
""" )
173
191
rr = testdir .run (sys .executable , "-m" , "pytest" , "-v" )
174
- outcomes = rr .parseoutcomes ()
175
- assert outcomes .get ("passed" ) == 1
192
+ assert_outcomes (rr , {'passed' : 1 })
176
193
177
194
178
195
@skip_if_reactor_not ('qt5reactor' )
@@ -187,9 +204,8 @@ def test_succeed():
187
204
rr = testdir .run (
188
205
sys .executable , "-m" , "pytest" , "-v" , "--reactor=qt5reactor"
189
206
)
190
- outcomes = rr .parseoutcomes ()
191
207
assert 'WrongReactorAlreadyInstalledError' in rr .stdout .str ()
192
- assert outcomes . get ( " error" ) == 1
208
+ assert_outcomes ( rr , { ' error' : 1 })
193
209
194
210
195
211
def test_pytest_from_reactor_thread (testdir ):
@@ -238,8 +254,6 @@ def main():
238
254
""" )
239
255
# check test file is ok in standalone mode:
240
256
rr = testdir .run (sys .executable , "-m" , "pytest" , "-v" )
241
- outcomes = rr .parseoutcomes ()
242
- assert outcomes .get ("passed" ) == 1
243
- assert outcomes .get ("failed" ) == 1
257
+ assert_outcomes (rr , {'passed' : 1 , 'failed' : 1 })
244
258
# test embedded mode:
245
259
assert testdir .run (sys .executable , "runner.py" ).ret == 0
0 commit comments