Пример #1
0
def test_different_subscriptions(endpoint, evt_man):
    """Test event emission for multiple subscriptions of a different
    type."""

    msg = events.createReadEventSubscriptionMsg(1, 1, 0, 0)
    subscribe(endpoint, evt_man, 1, msg)
    msg = events.createWriteEventSubscriptionMsg(2, 1, 0, 0)
    subscribe(endpoint, evt_man, 2, msg)

    seq_num = evt_man.emitReadEvent(0, 10, 'fileUuid')
    msg = events.createReadEventMsg(1, 'fileUuid', [(0, 10)], seq_num)
    endpoint.wait_for_specific_messages(msg)

    msg = events.createServerSubscriptionCancellationMsg(1, 0, 0)
    unsubscribe(endpoint, evt_man, 1, msg)

    seq_num = evt_man.emitWriteEvent(0, 10, 'fileUuid')
    msg = events.createWriteEventMsg(1, 'fileUuid', 0, [(0, 10)], seq_num)
    endpoint.wait_for_specific_messages(msg)

    seq_num = evt_man.emitTruncateEvent(0, 'fileUuid')
    msg = events.createTruncateEventMsg(1, 'fileUuid', 0, seq_num)
    endpoint.wait_for_specific_messages(msg)

    msg = events.createServerSubscriptionCancellationMsg(2, 1, 0)
    unsubscribe(endpoint, evt_man, 2, msg)
    seq_num = evt_man.emitTruncateEvent(0, 'fileUuid')
    msg = events.createTruncateEventMsg(1, 'fileUuid', 0, seq_num)
    with pytest.raises(Exception):
        endpoint.wait_for_specific_messages(msg, timeout_sec=1)
Пример #2
0
def test_multiple_subscriptions(endpoint, evt_man):
    """Test event emission for multiple subscriptions of the same type."""

    msg = events.createReadEventSubscriptionMsg(1, 0, 0, 50)
    subscribe(endpoint, evt_man, 1, msg)
    msg = events.createReadEventSubscriptionMsg(2, 0, 0, 20)
    subscribe(endpoint, evt_man, 2, msg)
    msg = events.createReadEventSubscriptionMsg(3, 0, 0, 5)
    subscribe(endpoint, evt_man, 3, msg)

    seq_num = evt_man.emitReadEvent(0, 5, 'fileUuid')
    msg = events.createReadEventMsg(1, 'fileUuid', [(0, 5)], seq_num)
    endpoint.wait_for_specific_messages(msg)

    msg = events.createServerSubscriptionCancellationMsg(3, 0, 0)
    unsubscribe(endpoint, evt_man, 3, msg)
    seq_num = evt_man.emitReadEvent(0, 20, 'fileUuid')
    msg = events.createReadEventMsg(1, 'fileUuid', [(0, 20)], seq_num)
    endpoint.wait_for_specific_messages(msg)

    msg = events.createServerSubscriptionCancellationMsg(2, 0, 1)
    unsubscribe(endpoint, evt_man, 2, msg)
    seq_num = evt_man.emitReadEvent(0, 50, 'fileUuid')
    msg = events.createReadEventMsg(1, 'fileUuid', [(0, 50)], seq_num)
    endpoint.wait_for_specific_messages(msg)

    msg = events.createServerSubscriptionCancellationMsg(1, 0, 2)
    unsubscribe(endpoint, evt_man, 1, msg)
    seq_num = evt_man.emitReadEvent(0, 10, 'fileUuid')
    msg = events.createReadEventMsg(1, 'fileUuid', [(0, 10)], seq_num)
    with pytest.raises(Exception):
        endpoint.wait_for_specific_messages(msg, timeout_sec=1)