1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#!/usr/bin/env python
import pytest
from circuits import Component, Event
class test(Event):
"""test Event"""
class App(Component):
def __init__(self):
super().__init__()
self.etype = None
self.evalue = None
self.etraceback = None
self.handler = None
self.fevent = None
def test(self):
return x # noqa: F821
def exception(self, etype, evalue, etraceback, handler=None, fevent=None):
self.etype = etype
self.evalue = evalue
self.etraceback = etraceback
self.handler = handler
self.fevent = fevent
def reraise(e):
raise e
@pytest.fixture()
def app(request, manager, watcher):
app = App().register(manager)
watcher.wait('registered')
def finalizer():
app.unregister()
request.addfinalizer(finalizer)
return app
def test_main(app, watcher):
e = test()
app.fire(e)
watcher.wait('exception')
assert app.etype is NameError
pytest.raises(NameError, lambda e: reraise(e), app.evalue)
assert isinstance(app.etraceback, list)
assert app.handler == app.test
assert app.fevent == e
|