def test_ctcp_events(): def _plugins(): return [HandshakePlugin, LogPlugin(), EasyProtocolPlugin()] client1, client2 = get_two_joined_clients(protocol_factory=_plugins) c = TestVarContainer( 'got_ctcp', 'got_ctcpreply', 'got_version', 'got_version_reply' ) signals.m.on_CTCP_VERSION.connect( c.set_callback('got_version'), sender=client2 ) signals.m.on_CTCPREPLY_VERSION.connect( c.set_callback('got_version_reply'), sender=client1 ) signals.m.on_CTCP.connect( c.set_callback('got_ctcp'), sender=client2 ) signals.m.on_CTCPREPLY.connect( c.set_callback('got_ctcpreply'), sender=client1 ) client1.ctcp(client2.identity.nick, [('VERSION', '')]) client2.ctcp_reply(client1.identity.nick, [('VERSION', 'utopiatest')]) assert c.wait_all(timeout=2)
def test_pubmsg_targets(): def _plugins(): return [HandshakePlugin, LogPlugin(), EasyProtocolPlugin(pubmsg=True)] channel = unique_channel() client1, client2 = get_two_joined_clients( channel=channel, protocol_factory=_plugins ) c = TestVarContainer( 'pubmsg', 'privmsg', 'pubnotice', 'privnotice' ) def check_target(expected_target, to_set): def callback(client, prefix, target, args): if expected_target == target: to_set.set() check_target._weak = getattr(check_target, '_weak', []) + [callback] return callback signals.m.on_PUBMSG.connect( check_target(channel, c.pubmsg), sender=client1, ) signals.m.on_PRIVMSG.connect( check_target(client1.identity.nick, c.privmsg), sender=client1, ) signals.m.on_PUBNOTICE.connect( check_target(channel, c.pubnotice), sender=client1 ) signals.m.on_PRIVNOTICE.connect( check_target(client1.identity.nick, c.privnotice), sender=client1 ) client2.privmsg(channel, 'public message') client2.privmsg(client1.identity.nick, 'private message') client2.notice(channel, 'public notice') client2.notice(client1.identity.nick, 'private notice') assert c.wait_all(timeout=2)