Test join/leave IRC room and change IRC room topic
This commit is contained in:
parent
96e54fb3aa
commit
f082fdf505
5 changed files with 106 additions and 2 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -31,4 +31,5 @@ slack.cfg
|
||||||
localhost.port
|
localhost.port
|
||||||
*.a
|
*.a
|
||||||
core.*
|
core.*
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
|
49
spectrum/src/tests/muc_change_topic.py
Normal file
49
spectrum/src/tests/muc_change_topic.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
import optparse
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
|
||||||
|
import sleekxmpp
|
||||||
|
|
||||||
|
|
||||||
|
class Responder(sleekxmpp.ClientXMPP):
|
||||||
|
def __init__(self, jid, password, room, nick):
|
||||||
|
sleekxmpp.ClientXMPP.__init__(self, jid, password)
|
||||||
|
self.room = room
|
||||||
|
self.nick = nick
|
||||||
|
self.finished = False
|
||||||
|
self.add_event_handler("session_start", self.start)
|
||||||
|
self.add_event_handler("groupchat_message", self.muc_message)
|
||||||
|
|
||||||
|
self.tests = {}
|
||||||
|
|
||||||
|
def muc_message(self, msg):
|
||||||
|
if msg['body'] == "ready":
|
||||||
|
self.send_message(mto=self.room, mbody=None, msubject='The new subject', mtype='groupchat')
|
||||||
|
|
||||||
|
def start(self, event):
|
||||||
|
self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
|
||||||
|
|
||||||
|
class Client(sleekxmpp.ClientXMPP):
|
||||||
|
def __init__(self, jid, password, room, nick):
|
||||||
|
sleekxmpp.ClientXMPP.__init__(self, jid, password)
|
||||||
|
self.room = room
|
||||||
|
self.nick = nick
|
||||||
|
self.add_event_handler("session_start", self.start)
|
||||||
|
self.add_event_handler("groupchat_subject", self.muc_subject)
|
||||||
|
self.finished = False
|
||||||
|
|
||||||
|
self.tests = {}
|
||||||
|
self.tests["subject_changed"] = ["libcommuni: Change topic", False]
|
||||||
|
|
||||||
|
def muc_subject(self, msg):
|
||||||
|
if msg['subject'] == "The new subject":
|
||||||
|
self.tests["subject_changed"][1] = True
|
||||||
|
self.finished = True
|
||||||
|
|
||||||
|
def start(self, event):
|
||||||
|
self.getRoster()
|
||||||
|
self.sendPresence()
|
||||||
|
self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
|
||||||
|
self.send_message(mto=self.room, mbody="ready", mtype='groupchat')
|
|
@ -12,6 +12,7 @@ class Responder(sleekxmpp.ClientXMPP):
|
||||||
sleekxmpp.ClientXMPP.__init__(self, jid, password)
|
sleekxmpp.ClientXMPP.__init__(self, jid, password)
|
||||||
self.room = room
|
self.room = room
|
||||||
self.nick = nick
|
self.nick = nick
|
||||||
|
self.finished = False
|
||||||
self.add_event_handler("session_start", self.start)
|
self.add_event_handler("session_start", self.start)
|
||||||
self.add_event_handler("groupchat_message", self.muc_message)
|
self.add_event_handler("groupchat_message", self.muc_message)
|
||||||
|
|
||||||
|
|
50
spectrum/src/tests/muc_join_leave.py
Normal file
50
spectrum/src/tests/muc_join_leave.py
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
import optparse
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
|
||||||
|
import sleekxmpp
|
||||||
|
|
||||||
|
|
||||||
|
class Responder(sleekxmpp.ClientXMPP):
|
||||||
|
def __init__(self, jid, password, room, nick):
|
||||||
|
sleekxmpp.ClientXMPP.__init__(self, jid, password)
|
||||||
|
self.room = room
|
||||||
|
self.nick = nick
|
||||||
|
self.finished = False
|
||||||
|
self.add_event_handler("session_start", self.start)
|
||||||
|
self.add_event_handler("muc::" + room + "::got_online", self.muc_got_online)
|
||||||
|
self.add_event_handler("muc::" + room + "::got_offline", self.muc_got_offline)
|
||||||
|
|
||||||
|
self.tests = {}
|
||||||
|
self.tests["online_received"] = ["libcommuni: Received available presence", False]
|
||||||
|
self.tests["offline_received"] = ["libcommuni: Received unavailable presence", False]
|
||||||
|
|
||||||
|
def muc_got_online(self, presence):
|
||||||
|
if presence['muc']['nick'] == "client":
|
||||||
|
self.tests["online_received"][1] = True
|
||||||
|
|
||||||
|
def muc_got_offline(self, presence):
|
||||||
|
if presence['muc']['nick'] == "client":
|
||||||
|
self.tests["offline_received"][1] = True
|
||||||
|
self.finished = True
|
||||||
|
|
||||||
|
def start(self, event):
|
||||||
|
self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
|
||||||
|
|
||||||
|
class Client(sleekxmpp.ClientXMPP):
|
||||||
|
def __init__(self, jid, password, room, nick):
|
||||||
|
sleekxmpp.ClientXMPP.__init__(self, jid, password)
|
||||||
|
self.room = room
|
||||||
|
self.nick = nick
|
||||||
|
self.add_event_handler("session_start", self.start)
|
||||||
|
self.finished = False
|
||||||
|
|
||||||
|
self.tests = {}
|
||||||
|
|
||||||
|
def start(self, event):
|
||||||
|
self.getRoster()
|
||||||
|
self.sendPresence()
|
||||||
|
self.plugin['xep_0045'].joinMUC(self.room, self.nick, wait=True)
|
||||||
|
self.plugin['xep_0045'].leaveMUC(self.room, self.nick)
|
|
@ -38,7 +38,7 @@ def single_test(Client, Responder):
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
max_time = 60
|
max_time = 60
|
||||||
while not client.finished and max_time > 0:
|
while not client.finished and not responder.finished and max_time > 0:
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
max_time -= 1
|
max_time -= 1
|
||||||
client.disconnect()
|
client.disconnect()
|
||||||
|
@ -49,7 +49,10 @@ def single_test(Client, Responder):
|
||||||
os.system("killall spectrum2_libcommuni_backend 2>/dev/null")
|
os.system("killall spectrum2_libcommuni_backend 2>/dev/null")
|
||||||
|
|
||||||
ret = True
|
ret = True
|
||||||
for v in client.tests.values():
|
tests = []
|
||||||
|
tests += client.tests.values()
|
||||||
|
tests += responder.tests.values()
|
||||||
|
for v in tests:
|
||||||
if v[1]:
|
if v[1]:
|
||||||
print v[0] + ": PASSED"
|
print v[0] + ": PASSED"
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Add table
Reference in a new issue