def test_throw_GreenletExit_not_started(self): import greenlet def f(): never_executed g = greenlet.greenlet(f) e = greenlet.GreenletExit() x = g.throw(e) assert x is e
def test_throw_GreenletExit_already_finished(self): import greenlet def f(): pass g = greenlet.greenlet(f) g.switch() e = greenlet.GreenletExit() x = g.throw(e) assert x is e
def test_throw_GreenletExit_result(self): from greenlet import greenlet gmain = greenlet.getcurrent() l = [0] # def func(): l[0] += 1 gmain.switch() l[0] += 1 # g = greenlet(func) g.switch() assert l[0] == 1 ge1 = greenlet.GreenletExit(1, 2, 3) ge2 = g.throw(ge1) assert l[0] == 1 assert ge1 is ge2