def test_do():
@attr.s
class EDo:
arg = attr.ib()
@do
def do_func(a, b):
done_a = yield Effect(EDo(a))
done_b = yield Effect(EDo(b))
return [done_a, done_b]
effect = do_func(1, 2)
assert isinstance(effect, Effect)
assert isinstance(effect.intent, ChainedIntent)
dispatcher = TypeDispatcher({
EDo: lambda intent: 'done: %s' % intent.arg
})
ret = sync_perform(dispatcher, effect)
assert ret == ['done: 1', 'done: 2']
评论列表
文章目录