summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/xmlstream.py
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2010-11-05 14:45:58 -0400
committerLance Stout <lancestout@gmail.com>2010-11-05 21:18:48 -0400
commitd0c506f93010f62cd447ce29f98ab991f521ec99 (patch)
tree80c994852cc04d4680c5db9c7e3abca77810e44e /sleekxmpp/xmlstream/xmlstream.py
parent7351fe1a0226298419e3d174d7b156daad91c131 (diff)
downloadslixmpp-d0c506f93010f62cd447ce29f98ab991f521ec99.tar.gz
slixmpp-d0c506f93010f62cd447ce29f98ab991f521ec99.tar.bz2
slixmpp-d0c506f93010f62cd447ce29f98ab991f521ec99.tar.xz
slixmpp-d0c506f93010f62cd447ce29f98ab991f521ec99.zip
Simplified SleekTest.
* check_stanza does not require stanza_class parameter. Introspection! * check_message, check_iq, and check_presence removed -- use check instead. * stream_send_stanza, stream_send_message, stream_send_iq, and stream_send_presence removed -- use send instead. * Use recv instead of recv_message, recv_presence, etc. * check_jid instead of check_JID * stream_start may accept multi=True to return a new SleekTest instance for testing multiple streams at once.
Diffstat (limited to 'sleekxmpp/xmlstream/xmlstream.py')
-rw-r--r--sleekxmpp/xmlstream/xmlstream.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/sleekxmpp/xmlstream/xmlstream.py b/sleekxmpp/xmlstream/xmlstream.py
index a5262814..85619db4 100644
--- a/sleekxmpp/xmlstream/xmlstream.py
+++ b/sleekxmpp/xmlstream/xmlstream.py
@@ -772,6 +772,28 @@ class XMLStream(object):
root.clear()
logging.debug("Ending read XML loop")
+ def _build_stanza(self, xml, default_ns=None):
+ """
+ Create a stanza object from a given XML object.
+
+ If a specialized stanza type is not found for the XML, then
+ a generic StanzaBase stanza will be returned.
+
+ Arguments:
+ xml -- The XML object to convert into a stanza object.
+ default_ns -- Optional default namespace to use instead of the
+ stream's current default namespace.
+ """
+ if default_ns is None:
+ default_ns = self.default_ns
+ stanza_type = StanzaBase
+ for stanza_class in self.__root_stanza:
+ if xml.tag == "{%s}%s" % (default_ns, stanza_class.name):
+ stanza_type = stanza_class
+ break
+ stanza = stanza_type(self, xml)
+ return stanza
+
def __spawn_event(self, xml):
"""
Analyze incoming XML stanzas and convert them into stanza