import pytest from app.hooks import EventDispatcher, listen_event def test_register_and_dispatch(): results = [] def listener1(a, b=None): results.append(('l1', a, b)) def listener2(a, b=None): results.append(('l2', a, b)) EventDispatcher.register('test_event', listener1) EventDispatcher.register('test_event', listener2) EventDispatcher.dispatch('test_event', 1, b=2) assert ('l1', 1, 2) in results assert ('l2', 1, 2) in results def test_listen_event_decorator(): results = [] @listen_event('decorated_event') def handler(x): results.append(x) EventDispatcher.dispatch('decorated_event', 'hello') assert results == ['hello']