Пример #1
0
def test_event_loop_multiple_same_signals():
    callback = _GetCallback()
    event_loop = EventLoop()

    signal_rm = event_loop.add_signal(signal.SIGUSR1, _signal_callback,
                                      callback)
    event_loop.add_signal(signal.SIGUSR1, _signal_callback, callback)

    event_loop.dispatch(0)
    assert callback.n_calls == 0

    # Check callback gets 2 calls
    for _ in range(5):
        callback.n_calls = 0
        os.kill(os.getpid(), signal.SIGUSR1)
        event_loop.dispatch(0)

        assert callback.n_calls == 2

    # Remove one of the signals
    signal_rm.remove()

    # Callback only gets call now
    for _ in range(5):
        callback.n_calls = 0
        os.kill(os.getpid(), signal.SIGUSR1)
        event_loop.dispatch(0)

        assert callback.n_calls == 1
Пример #2
0
def test_event_loop_signal():
    callback = _GetCallback()
    event_loop = EventLoop()

    event_loop.add_signal(signal.SIGUSR1, _signal_callback, callback)

    event_loop.dispatch(0)
    assert callback.callback is None

    os.kill(os.getpid(), signal.SIGUSR1)

    event_loop.dispatch(0)
    assert callback.callback == signal.SIGUSR1