def test_greenlet_tracing(self):
main = greenlet.getcurrent()
actions = []
def trace(*args):
actions.append(args)
def dummy():
pass
def dummyexc():
raise SomeError()
oldtrace = greenlet.settrace(trace)
try:
g1 = greenlet.greenlet(dummy)
g1.switch()
g2 = greenlet.greenlet(dummyexc)
self.assertRaises(SomeError, g2.switch)
finally:
greenlet.settrace(oldtrace)
self.assertEqual(actions, [
('switch', (main, g1)),
('switch', (g1, main)),
('switch', (main, g2)),
('throw', (g2, main)),
])
评论列表
文章目录