def test_immediate_scheduleaction(self): scheduler = ImmediateScheduler() ran = False def action(scheduler, state=None): nonlocal ran ran = True scheduler.schedule(action) assert ran
def test_immediate_simple1(self): scheduler = ImmediateScheduler() xx = 0 def action(scheduler, state=None): nonlocal xx xx = state return Disposable() scheduler.schedule(action, 42) assert xx == 42
def test_immediate_recursive1(self): scheduler = ImmediateScheduler() xx = 0 yy = 0 def action(scheduler, state=None): nonlocal xx xx = state def inner_action(scheduler, state=None): nonlocal yy yy = state return Disposable() return scheduler.schedule(inner_action, 43) scheduler.schedule(action, 42) assert xx == 42 assert yy == 43
def test_immediate_schedule_action_error(self): scheduler = ImmediateScheduler() class MyException(Exception): pass def action(scheduler, state=None): raise MyException() with pytest.raises(MyException): return scheduler.schedule(action)