11import sys
22from functools import partial
33
4- from py .test import raises
4+ from py .test import raises , warns
55
66from . import (
77 ComposedDispatcher ,
@@ -34,19 +34,25 @@ def test_do_return():
3434 """
3535 When a @do function yields a do_return, the given value becomes the
3636 eventual result.
37+
38+ This is deprecated.
3739 """
3840
3941 @do
4042 def f ():
4143 yield do_return ("hello" )
4244
43- assert perf (f ()) == "hello"
45+ with warns (DeprecationWarning ):
46+ assert perf (f ()) == "hello"
4447
4548
46- def test_do_return_effect ():
49+ def test_return_effect ():
4750 @do
4851 def f ():
49- yield do_return (Effect (Constant ("hello" )))
52+ return Effect (Constant ("hello" ))
53+ # this is a dumb trick we're playing on Python to make sure this function is a generator,
54+ # even though we never want to yield anything.
55+ yield
5056
5157 assert perf (f ()) == "hello"
5258
@@ -57,7 +63,7 @@ def test_yield_effect():
5763 @do
5864 def f ():
5965 x = yield Effect (Constant (3 ))
60- yield do_return ( x )
66+ return x
6167
6268 perf (f ()) == 3
6369
@@ -83,8 +89,7 @@ def f():
8389 with raises (TypeError ) as err_info :
8490 perf (result )
8591 assert str (err_info .value ).startswith (
86- "@do functions must only yield Effects or results of "
87- "do_return. Got 1 from <generator object"
92+ "@do functions must only yield Effects. Got 1 from <generator object"
8893 )
8994
9095
@@ -100,7 +105,7 @@ def f():
100105 yield Effect (Error (ZeroDivisionError ("foo" )))
101106 except Exception as e :
102107 got_error = e
103- yield do_return ( got_error )
108+ return got_error
104109
105110 exc = perf (f ())
106111 assert type (exc ) is ZeroDivisionError
@@ -114,7 +119,7 @@ def test_works_with_sync_perform():
114119 @do
115120 def perform_myintent (dispatcher , myintent ):
116121 result = yield Effect (Constant (1 ))
117- yield do_return ( result + 1 )
122+ return result + 1
118123
119124 class MyIntent (object ):
120125 pass
@@ -133,7 +138,7 @@ def test_promote_metadata():
133138
134139 def original (dispatcher , intent ):
135140 """Original!"""
136- yield do_return ( 1 )
141+ return 1
137142
138143 original .attr = 1
139144 wrapped = do (original )
@@ -166,7 +171,7 @@ def test_repeatable_effect():
166171 @do
167172 def f ():
168173 x = yield Effect (Constant ("foo" ))
169- yield do_return ( x )
174+ return x
170175
171176 eff = f ()
172177 assert perf (eff ) == "foo"
@@ -196,7 +201,11 @@ def f():
196201
197202def test_py3_return ():
198203 """The `return x` syntax in Py3 sets the result of the Effect to `x`."""
199- from effect ._test_do_py3 import py3_generator_with_return
204+
205+ @do
206+ def py3_generator_with_return ():
207+ yield Effect (Constant (1 ))
208+ return 2 # noqa
200209
201210 eff = py3_generator_with_return ()
202211 assert perf (eff ) == 2
0 commit comments