from scenarios import *
scenario = (
# IRC server JIDs advertise caps for their own disco info
send_stanza(""),
expect_stanza("/iq[@from='{irc_server_one}'][@to='{jid_one}/{resource_one}'][@type='result']/disco_info:query/disco_info:identity[@category='gateway'][@type='irc']",
"/iq/disco_info:query/disco_info:feature[@var='http://jabber.org/protocol/disco#info']",
"/iq/disco_info:query/disco_info:feature[@var='http://jabber.org/protocol/caps']"
),
send_stanza(""),
sequences.connection(),
scenarios.simple_channel_join.expect_self_join_presence(),
send_stanza(""),
expect_stanza("/presence[@from='{irc_server_one}'][@to='{jid_one}'][@type='subscribed']"),
expect_stanza("/presence[@from='{irc_server_one}'][@to='{jid_one}']/caps:c[@hash='sha-1'][@node][@ver]",
after = (
save_value("server_ver", extract_attribute("/presence/caps:c[@hash='sha-1'][@node][@ver]", "ver")),
save_value("server_node", extract_attribute("/presence/caps:c[@hash='sha-1'][@node][@ver]", "node")),
)
),
send_stanza(""),
expect_stanza("/iq[@from='{irc_server_one}'][@type='result']/disco_info:query[@node='{server_node}#{server_ver}']"),
)