Beispiel #1
0
def get_two_joined_clients(channel=None, protocol_factory=_default_plugins):
    if channel is None:
        channel = unique_channel()

    client1 = ProtocolClient(
        unique_identity(), 'localhost', plugins=protocol_factory()
    )

    client2 = ProtocolClient(
        unique_identity(), 'localhost', plugins=protocol_factory()
    )

    client1._test_joined = Event()
    client2._test_joined = Event()

    def on_376(client, prefix, target, args):
        client.join_channel(channel)

    def on_join(client, prefix, target, args):
        if target == channel and client.identity.nick == prefix[0]:
            client._test_joined.set()

    signals.m.on_376.connect(on_376, sender=client1)
    signals.m.on_376.connect(on_376, sender=client2)
    signals.m.on_JOIN.connect(on_join, sender=client1)
    signals.m.on_JOIN.connect(on_join, sender=client2)

    assert(client1.connect().get() is True)
    assert(client2.connect().get() is True)

    assert client1._test_joined.wait(timeout=5)
    assert client2._test_joined.wait(timeout=5)

    return client1, client2
Beispiel #2
0
def test_unicode_privmsg():
    """
    Ensure the client can send unicode and also receives unicode.
    """
    TEST_STRING = u'± äöü @ o ↑↑↓↓←→←→BA コナミコマンド'

    client1 = ProtocolClient(
        unique_identity(), 'localhost', plugins=[
            HandshakePlugin,
            LogPlugin(),
            ProtocolPlugin()
        ]
    )

    client2 = ProtocolClient(
        unique_identity(), 'localhost', plugins=[
            HandshakePlugin,
            LogPlugin(),
            ProtocolPlugin()
        ]
    )

    class Container(object):
        pass
    got_message = Container()
    got_message.value = False

    def on_376(client, prefix, target, args):
        client.join_channel('#test')

    def on_join(client, prefix, target, args):
        client.privmsg('#test', TEST_STRING)

    def on_privmsg(client, prefix, target, args):
        got_message.value = (args[0] == TEST_STRING)
        client1.terminate()
        client2.terminate()

    signals.m.on_376.connect(on_376, sender=client1)
    signals.m.on_376.connect(on_376, sender=client2)
    signals.m.on_JOIN.connect(on_join, sender=client1)
    signals.m.on_PRIVMSG.connect(on_privmsg, sender=client2)

    assert(client1.connect().get() is True)
    assert(client2.connect().get() is True)

    client1._io_workers.join(timeout=5)
    client2._io_workers.join(timeout=5)

    assert(got_message.value)