# -*- coding: utf-8 -*- from time import sleep from mock import Mock from pyee import ExecutorEventEmitter class PyeeTestError(Exception): pass def test_executor_emit(): """Test that ExecutorEventEmitters can emit events.""" with ExecutorEventEmitter() as ee: should_call = Mock() @ee.on("event") def event_handler(): should_call(True) ee.emit("event") sleep(0.1) should_call.assert_called_once() def test_executor_once(): """Test that ExecutorEventEmitters also emit events for once.""" with ExecutorEventEmitter() as ee: should_call = Mock() @ee.once("event") def event_handler(): should_call(True) ee.emit("event") sleep(0.1) should_call.assert_called_once() def test_executor_error(): """Test that ExecutorEventEmitters handle errors.""" with ExecutorEventEmitter() as ee: should_call = Mock() @ee.on("event") def event_handler(): raise PyeeTestError() @ee.on("error") def handle_error(e): should_call(e) ee.emit("event") sleep(0.1) should_call.assert_called_once()