diff options
author | Lance Stout <lancestout@gmail.com> | 2010-11-05 14:45:58 -0400 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2010-11-05 21:18:48 -0400 |
commit | d0c506f93010f62cd447ce29f98ab991f521ec99 (patch) | |
tree | 80c994852cc04d4680c5db9c7e3abca77810e44e /sleekxmpp/xmlstream/xmlstream.py | |
parent | 7351fe1a0226298419e3d174d7b156daad91c131 (diff) | |
download | slixmpp-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.py | 22 |
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 |