[tests/event] Add some more tests for trigger-time args
This commit is contained in:
parent
52e5ad7b43
commit
a43917594e
3 changed files with 25 additions and 6 deletions
|
@ -2,15 +2,21 @@
|
|||
__callbacks = {}
|
||||
|
||||
def register(event, callback, *args, **kwargs):
|
||||
__callbacks.setdefault(event, []).append(
|
||||
lambda: callback(*args, **kwargs)
|
||||
)
|
||||
cb = callback
|
||||
if len(args) + len(kwargs) > 0:
|
||||
print("registering lambda: {} {}".format(len(args), len(kwargs)))
|
||||
cb = lambda: callback(*args, **kwargs)
|
||||
|
||||
__callbacks.setdefault(event, []).append(cb)
|
||||
|
||||
def clear():
|
||||
__callbacks.clear()
|
||||
|
||||
def trigger(event):
|
||||
def trigger(event, *args, **kwargs):
|
||||
for callback in __callbacks.get(event, []):
|
||||
callback()
|
||||
if len(args) + len(kwargs) == 0:
|
||||
callback()
|
||||
else:
|
||||
callback(*args, **kwargs)
|
||||
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue