Skip to content

Commit 7f11af2

Browse files
committed
fix assertion in tests, add new test for blockon usage in fixture
1 parent b265811 commit 7f11af2

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

testing/test_basic.py

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ def assert_outcomes(run_result, outcomes):
1010
formatted_output = format_run_result_output_for_assert(run_result)
1111

1212
try:
13-
outcomes = run_result.parseoutcomes()
13+
result_outcomes = run_result.parseoutcomes()
1414
except ValueError:
1515
assert False, formatted_output
1616

1717
for name, value in outcomes.items():
18-
assert outcomes.get(name) == value, formatted_output
18+
assert result_outcomes.get(name) == value, formatted_output
1919

2020

2121
def format_run_result_output_for_assert(run_result):
@@ -138,6 +138,33 @@ def test_MAIN():
138138
assert_outcomes(rr, {'passed': 1})
139139

140140

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+
141168
@skip_if_reactor_not('default')
142169
def test_blockon_in_hook(testdir):
143170
testdir.makeconftest("""
@@ -146,11 +173,11 @@ def test_blockon_in_hook(testdir):
146173
147174
def pytest_configure(config):
148175
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)
151178
reactor.callLater(0.02, d2.callback, 1)
152-
pt.blockon(d)
153-
pt.blockon(d)
179+
pt.blockon(d1)
180+
pt.blockon(d2)
154181
""")
155182
testdir.makepyfile("""
156183
from twisted.internet import reactor, defer

0 commit comments

Comments
 (0)