@@ -10,12 +10,12 @@ def assert_outcomes(run_result, outcomes):
10
10
formatted_output = format_run_result_output_for_assert (run_result )
11
11
12
12
try :
13
- outcomes = run_result .parseoutcomes ()
13
+ result_outcomes = run_result .parseoutcomes ()
14
14
except ValueError :
15
15
assert False , formatted_output
16
16
17
17
for name , value in outcomes .items ():
18
- assert outcomes .get (name ) == value , formatted_output
18
+ assert result_outcomes .get (name ) == value , formatted_output
19
19
20
20
21
21
def format_run_result_output_for_assert (run_result ):
@@ -138,6 +138,33 @@ def test_MAIN():
138
138
assert_outcomes (rr , {'passed' : 1 })
139
139
140
140
141
+ def test_blockon_in_fixture (testdir ):
142
+ testdir .makepyfile ("""
143
+ from twisted.internet import reactor, defer
144
+ import pytest
145
+ import pytest_twisted
146
+
147
+ @pytest.fixture(scope="module",
148
+ params=["fs", "imap", "web"])
149
+ def foo(request):
150
+ d1, d2 = defer.Deferred(), defer.Deferred()
151
+ reactor.callLater(0.01, d1.callback, 1)
152
+ reactor.callLater(0.02, d2.callback, request.param)
153
+ pytest_twisted.blockon(d1)
154
+ return d2
155
+
156
+
157
+ @pytest_twisted.inlineCallbacks
158
+ def test_succeed(foo):
159
+ x = yield foo
160
+ if x == "web":
161
+ raise RuntimeError("baz")
162
+ """ )
163
+ rr = testdir .run (sys .executable , "-m" , "pytest" , "-v" )
164
+ # assert not rr
165
+ assert_outcomes (rr , {'passed' : 2 , 'failed' : 1 })
166
+
167
+
141
168
@skip_if_reactor_not ('default' )
142
169
def test_blockon_in_hook (testdir ):
143
170
testdir .makeconftest ("""
@@ -146,11 +173,11 @@ def test_blockon_in_hook(testdir):
146
173
147
174
def pytest_configure(config):
148
175
pt.init_default_reactor()
149
- d , d2 = defer.Deferred(), defer.Deferred()
150
- reactor.callLater(0.01, d .callback, 1)
176
+ d1 , d2 = defer.Deferred(), defer.Deferred()
177
+ reactor.callLater(0.01, d1 .callback, 1)
151
178
reactor.callLater(0.02, d2.callback, 1)
152
- pt.blockon(d )
153
- pt.blockon(d )
179
+ pt.blockon(d1 )
180
+ pt.blockon(d2 )
154
181
""" )
155
182
testdir .makepyfile ("""
156
183
from twisted.internet import reactor, defer
0 commit comments