Пример #1
0
def test_basic_messaging_with_all_clients_concurrently(iqa: Instance,
                                                       length: int) -> None:
    """
    Exchange messages through the router using three pairs of:
    - Java Sender and Receiver
    - Python Sender and Receiver, and
    - NodeJS Sender and Receiver.
    Expects that all messages are exchanged and all external clients complete successfully.
    :param iqa:
    :param length:
    :return:
    """

    receivers: List[ReceiverType] = iqa.get_clients(client_type=ReceiverType)
    senders: List[SenderType] = iqa.get_clients(client_type=SenderType)

    # Run all available clients in parallel
    for receiver in receivers:
        start_receiver(receiver)
    for sender in senders:
        start_sender(sender, length)

    # Validate all results
    for receiver, sender in zip(receivers, senders):
        validate_client_results(receiver, sender)
Пример #2
0
def sender(request,
           iqa: Instance) -> Union[SenderJava, SenderPython, SenderNodeJS]:
    if "sender_" in request.param:
        snd: List[str] = request.param.split('_')
        sender_implementation: str = snd[1]
        sender: SenderType = iqa.get_clients(SenderType,
                                             sender_implementation)[0]
        return sender
Пример #3
0
def nodejs_sender(iqa: Instance):
    """
    Returns the first NodeJS Sender instance or None
    :param iqa:
    :return:
    """
    assert iqa
    return first_or_none(iqa.get_clients(SenderSubtype, 'nodejs'))
Пример #4
0
def python_sender(iqa: Instance):
    """
    Returns the first Python Sender instance or None
    :param iqa:
    :return:
    """
    assert iqa
    return first_or_none(iqa.get_clients(SenderSubtype, 'python'))
Пример #5
0
def java_sender(iqa: Instance):
    """
    Returns the first Java Sender instance or None
    :param iqa:
    :return:
    """
    assert iqa
    return first_or_none(iqa.get_clients(SenderSubtype, 'java'))
Пример #6
0
def receiver(
        request,
        iqa: Instance) -> Union[ReceiverJava, ReceiverPython, ReceiverNodeJS]:
    if "receiver_" in request.param:
        rcv: List[str] = request.param.split('_')
        receiver_implementation: str = rcv[1]
        receiver: ReceiverType = iqa.get_clients(ReceiverType,
                                                 receiver_implementation)[0]
        return receiver
Пример #7
0
def sender(request,
           iqa: Instance) -> Union[SenderJava, SenderPython, SenderNodeJS]:
    """
    Fixture the first Sender instance
    :param request:
    :param iqa:
    :return: Returns first Sender instance on 1 cluster instance
    """
    if "sender_" in request.param:
        s: list = request.param.split('_')
        sender_implementation: str = s[1]
        sender_number: int = int(s[2])
        sender: SenderType = iqa.get_clients(Type[Sender],
                                             sender_implementation)[0]
        sender.set_url("amqp://%s:5672/address" %
                       request.config.option.cluster[sender_number])
        return sender