from unittest.mock import Mock from crewai.utilities.events.base_events import CrewEvent from crewai.utilities.events.crewai_event_bus import crewai_event_bus class TestEvent(CrewEvent): pass def test_specific_event_handler(): mock_handler = Mock() @crewai_event_bus.on(TestEvent) def handler(source, event): mock_handler(source, event) event = TestEvent(type="test_event") crewai_event_bus.emit("source_object", event) mock_handler.assert_called_once_with("source_object", event) def test_wildcard_event_handler(): mock_handler = Mock() @crewai_event_bus.on(CrewEvent) def handler(source, event): mock_handler(source, event) event = TestEvent(type="test_event") crewai_event_bus.emit("source_object", event) mock_handler.assert_called_once_with("source_object", event)