示例#1
0
def test_twisted_once():
    """Test that TwistedEventEmitters also wrap coroutines for once.
    """
    ee = TwistedEventEmitter()

    should_call = Mock()

    @ee.once('event')
    async def event_handler():
        _ = await succeed('yes!')
        should_call(True)

    ee.emit('event')

    should_call.assert_called_once()
示例#2
0
def test_twisted_error():
    """Test that TwistedEventEmitters handle Failures when wrapping coroutines.
    """
    ee = TwistedEventEmitter()

    should_call = Mock()

    @ee.on('event')
    async def event_handler():
        raise PyeeTestError()

    @ee.on('failure')
    def handle_error(e):
        should_call(e)

    ee.emit('event')

    should_call.assert_called_once()
示例#3
0
def test_propagates_sync_failure():
    """Test that TwistedEventEmitters can propagate failures
    from twisted Deferreds
    """
    ee = TwistedEventEmitter()

    should_call = Mock()

    @ee.on('event')
    def event_handler():
        raise PyeeTestError()

    @ee.on('failure')
    def handle_failure(f):
        assert isinstance(f, Failure)
        should_call(f)

    ee.emit('event')

    should_call.assert_called_once()
示例#4
0
def test_propagates_exception():
    """Test that TwistedEventEmitters propagate failures as exceptions to
    the error event when no failure handler
    """

    ee = TwistedEventEmitter()

    should_call = Mock()

    @ee.on('event')
    @inlineCallbacks
    def event_handler():
        yield Failure(PyeeTestError())

    @ee.on('error')
    def handle_error(exc):
        assert isinstance(exc, Exception)
        should_call(exc)

    ee.emit('event')

    should_call.assert_called_once()