From ea48bb5ac58aa186c18c42c83e21a6a636bd22a9 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Wed, 17 Nov 2010 15:45:16 -0500 Subject: Fixed some live stream test errors. Added test demonstrating using multiple stream clients in a single test. --- sleekxmpp/test/sleektest.py | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) (limited to 'sleekxmpp/test/sleektest.py') diff --git a/sleekxmpp/test/sleektest.py b/sleekxmpp/test/sleektest.py index d7a6147b..27a7556f 100644 --- a/sleekxmpp/test/sleektest.py +++ b/sleekxmpp/test/sleektest.py @@ -7,6 +7,10 @@ """ import unittest +try: + import Queue as queue +except: + import queue import sleekxmpp from sleekxmpp import ClientXMPP, ComponentXMPP @@ -279,6 +283,10 @@ class SleekTest(unittest.TestCase): else: raise ValueError("Unknown XMPP connection mode.") + # We will use this to wait for the session_start event + # for live connections. + skip_queue = queue.Queue() + if socket == 'mock': self.xmpp.set_socket(TestSocket()) @@ -293,6 +301,10 @@ class SleekTest(unittest.TestCase): self.xmpp.socket.recv_data(header) elif socket == 'live': self.xmpp.socket_class = TestLiveSocket + def wait_for_session(x): + self.xmpp.socket.clear() + skip_queue.put('started') + self.xmpp.add_event_handler('session_start', wait_for_session) self.xmpp.connect() else: raise ValueError("Unknown socket type.") @@ -300,10 +312,13 @@ class SleekTest(unittest.TestCase): self.xmpp.register_plugins() self.xmpp.process(threaded=True) if skip: - # Clear startup stanzas - self.xmpp.socket.next_sent(timeout=1) - if mode == 'component': + if socket != 'live': + # Clear startup stanzas self.xmpp.socket.next_sent(timeout=1) + if mode == 'component': + self.xmpp.socket.next_sent(timeout=1) + else: + skip_queue.get(block=True, timeout=10) def make_header(self, sto='', sfrom='', @@ -573,11 +588,13 @@ class SleekTest(unittest.TestCase): Defaults to the value of self.match_method. """ sent = self.xmpp.socket.next_sent(timeout) - if isinstance(data, str): - xml = self.parse_xml(data) - self.fix_namespaces(xml, 'jabber:client') - data = self.xmpp._build_stanza(xml, 'jabber:client') - self.check(data, sent, + if sent is None: + return False + print sent + xml = self.parse_xml(sent) + self.fix_namespaces(xml, 'jabber:client') + sent = self.xmpp._build_stanza(xml, 'jabber:client') + self.check(sent, data, method=method, defaults=defaults, use_values=use_values) -- cgit v1.2.3 From e648f08badce77bce3842108340a4c257b619bc1 Mon Sep 17 00:00:00 2001 From: Lance Stout Date: Wed, 17 Nov 2010 16:07:27 -0500 Subject: Fix stream test errors. --- sleekxmpp/test/sleektest.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sleekxmpp/test/sleektest.py') diff --git a/sleekxmpp/test/sleektest.py b/sleekxmpp/test/sleektest.py index 27a7556f..5e61cec2 100644 --- a/sleekxmpp/test/sleektest.py +++ b/sleekxmpp/test/sleektest.py @@ -197,7 +197,10 @@ class SleekTest(unittest.TestCase): "Stanza:\n%s" % str(stanza)) else: stanza_class = stanza.__class__ - xml = self.parse_xml(criteria) + if isinstance(criteria, str): + xml = self.parse_xml(criteria) + else: + xml = criteria.xml # Ensure that top level namespaces are used, even if they # were not provided. @@ -590,7 +593,6 @@ class SleekTest(unittest.TestCase): sent = self.xmpp.socket.next_sent(timeout) if sent is None: return False - print sent xml = self.parse_xml(sent) self.fix_namespaces(xml, 'jabber:client') sent = self.xmpp._build_stanza(xml, 'jabber:client') -- cgit v1.2.3