summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2011-07-03Merge branch 'develop' into exceptionsLance Stout
2011-07-03Added XEP-0066: Out-of-Band DataLance Stout
2011-07-01So using sys.excepthook to catch errors only works once.Lance Stout
The error bubbles through the event processing loop, breaking it and hanging the application. Instead, there is now a .exception(e) method on XMLStream which may be overridden or reassigned that will receive all unhandled exceptions (read: not XMPPError) from event and stream handlers.
2011-06-20Merge branch 'develop' into exceptionsLance Stout
2011-06-20Fix stanza clobbering when replying to errors.sleek-1.0.0-beta5sleek-1.0-Beta51.0.0-beta51.0-Beta5Lance Stout
If a stanza handler raised an exception, the exception was processed and replied by the modified stanza, not a stanza with the original content. A copy is now made before handler processing, and if an exception occurs it is the copy that processes the exception using the original content.
2011-06-01Begin experimental use of exceptions.Lance Stout
Provides IqTimeout and IqError which are raised when an Iq response does not arrive in time, or it arrives with type='error'.
2011-05-27Added support for testind disconnect errors.Lance Stout
2011-05-25Fix test for get_roster().Lance Stout
Python2.6 has issues passing a Unicode string as a keyword name.
2011-05-20Fix test timeout issue.Lance Stout
A better method than using time.sleep is needed. Maybe use queue.task_done to detect when event processing has ended? Research time!
2011-05-20Make roster test a little more robust.Lance Stout
2011-05-20Fix double roster entry issue with Unicode.Lance Stout
JIDs with Unicode values were being encoded by the JID class instead of leaving them as just Unicode strings. It may still be a good idea to use from __future__ import unicode_literals pretty much everywhere though. Fixes issue #88.
2011-05-20Resolve timeout errors for get_roster.Lance Stout
See issue #89 Using get_roster will now return the same types of values as Iq.send. If a timeout occurs, then the event 'roster_timeout' will be fired. A successful call to get_roster will also raise the 'roster_received' event. To ensure that the get_roster call was successful, here is a pattern to follow: def __init__(self, ...): ... self.add_event_handler('session_start', self.session_start) self.add_event_handler('roster_timeout', self.roster_timeout) self.add_event_handler('roster_received', self.roster_received) def session_start(self, e): self.send_presence() self.get_roster() def roster_timeout(self, e): # Optionally increase the timeout period self.get_roster(timeout=self.response_timeout * 2) def roster_received(self, iq): # Do stuff, roster has been initialized. ...
2011-05-13Ensure that the XEP-0086 plugin is loaded.Lance Stout
Since the XEP-0086 plugin auto adds error code values, it must be reliably loaded or unloaded when certain tests are run so that stanzas may be matched. In this case, we ensure that the plugin is used.
2011-04-08Update tests to reflect XEP-0086 correcting error codes.Lance Stout
2011-03-24Added new implementation for XEP-0086.Lance Stout
2011-03-24Allow a stanza plugin to override a parent's interfaces.Lance Stout
Each interface, say foo, may be overridden in three ways: set_foo get_foo del_foo To declare an override in a plugin, add the class field overrides as so: overrides = ['set_foo', 'del_foo'] Each override must have a matching set_foo(), etc method for implementing the new behaviour. To enable the overrides for a particular parent stanza, pass the option overrides=True to register_stanza_plugin. register_stanza_plugin(Stanza, Plugin, overrides=True) Example code: class Test(ElementBase): name = 'test' namespace = 'testing' interfaces = set(('foo', 'bar')) sub_interfaces = set(('bar',)) class TestOverride(ElementBase): name = 'test-override' namespace = 'testing' plugin_attrib = 'override' interfaces = set(('foo',)) overrides = ['set_foo'] def setup(self, xml): # Don't include an XML element in the parent stanza # since we're adding just an attribute. # If adding a regular subelement, no need to do this. self.xml = ET.Element('') def set_foo(self, value): print("overrides!") self.parent()._set_attr('foo', 'override-%s' % value) register_stanza_plugin(Test, TestOverride, overrides=True) Example usage: >>> t = TestStanza() >>> t['foo'] = 'bar' >>> t['foo'] 'override-bar'
2011-03-24Added new XEP-0050 implementation.Lance Stout
Backward incompatibility alert! Please see examples/adhoc_provider.py for how to use the new plugin implementation, or the test examples in the files tests/test_stream_xep_0050.py and tests/test_stanza_xep_0050.py. Major changes: - May now have zero-step commands. Useful if a command is intended to be a dynamic status report that doesn't require any user input. - May use payloads other than data forms, such as a completely custom stanza type. - May include multiple payload items, such as multiple data forms, or a form and a custom stanza type. - Includes a command user API for calling adhoc commands on remote agents and managing the workflow. - Added support for note elements. Todo: - Add prev action support. You may use register_plugin('old_0050') to continue using the previous XEP-0050 implementation.
2011-03-23Cleaned XEP-0249 plugin, added tests.Lance Stout
2011-03-22Updated XEP-0128 plugin to work with the new XEP-0030 plugin.Lance Stout
Required fixing a few bugs in StanzaBase related to iterable substanzas.
2011-02-24Add tests for XEP-0085, fix some bugs.Lance Stout
2011-02-24Updated the XEP-0085 plugin.Lance Stout
Can now be used as so: >>> msg['chat_state'] '' >>> msg <message /> >>> msg['chat_state'] = 'paused' >>> msg <message> <paused xmlns="http://jabber.org/protocol/chatstates" /> </message> >>> msg['chat_state'] 'paused' >>> del msg['chat_state'] >>> msg <message />
2011-02-11XMPPError exceptions can keep a stanza's contents.Lance Stout
This allows exceptions to include the original content of a stanza in the error response by including the parameter clear=False when raising the exception.
2011-02-08Update XEP-0060 test.Lance Stout
2011-02-07Fixed failing tests from new XEP-0009 pluginLance Stout
2011-02-05fixed mergeNathan Fritz
2011-01-19Fix tests for Nick stanza.Lance Stout
2011-01-13Introduced new XEP-0009 into develop.Dann Martens
2011-01-08Update the XEP-0092 plugin to the new style.Lance Stout
2011-01-08Add support for XEP-0059 to XEP-0030 plugin.Lance Stout
2011-01-08Added new XEP-0059 plugin.Lance Stout
Contributed by Erik Reuterborg Larsson (who).
2010-12-28Make the new XEP-30 plugin retain older API signatures.Lance Stout
2010-12-17Make tests pass for catching exceptions.Lance Stout
May now use sys.excepthook to catch exceptions from threaded handlers.
2010-12-09First pass at a new XEP-0030 plugin.Lance Stout
Now with dynamic node handling goodness. Some things are not quite working yet, in particular: set_items set_info set_identities set_features And still need more unit tests to round things out.
2010-12-08Fix xml:lang tostring test.Lance Stout
2010-12-07Add support for using xml:lang values.Lance Stout
Support is only for adding literal XML content to stanzas. Full support for things like multiple message bodies with different xml:lang values is still in the works.
2010-12-07Added option for iq.send to accept a callhandler.Lance Stout
The callback will be a stream level handler, and will not execute in its own thread. If you must have a thread, have the callback function raise a custom event, which can be processed by another event handler, which may run in an individual thread, like so: def handle_reply(self, iq): self.event('custom_event', iq) def do_long_operation_in_thread(self, iq): ... self.add_event_handler('custom_event', self.do_long_operation_in_thread) ...take out already prepared iq stanza... iq.send(callback=self.handle_reply)
2010-11-18Adding stream tests for XEP-0030.Lance Stout
Fixed some errors when responding to disco requests.
2010-11-17Fixed some live stream test errors.Lance Stout
Added test demonstrating using multiple stream clients in a single test.
2010-11-17Make live stream tests work better.Lance Stout
SleekTest can now use matchers when checking stanzas, using the method parameter for self.check(), self.recv(), and self.send(): method='exact' - Same behavior as before 'xpath' - Use xpath matcher 'id' - Use ID matcher 'mask' - Use XML mask matcher 'stanzapath' - Use StanzaPath matcher recv_feature and send_feature only accept 'exact' and 'mask' for now.
2010-11-05Simplified SleekTest.Lance Stout
* 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.
2010-10-25Made exceptions work.sleek-1.0-Beta21.0-Beta2Lance Stout
Raising an XMPPError exception from an event handler now works, even if from a threaded handler. Added stream tests to verify. We should start using XMPPError, it really makes things simple!
2010-10-25Added more presence stream tests.Lance Stout
Tests auto_authorize=False, and got_online.
2010-10-25Fixed bug in presence subscription handling.Lance Stout
Subscription requests and responses were not setting the correct 'to' attribute.
2010-10-24Added stream tests for presence events.Lance Stout
First batch of tests, currently focuses on the got_offline event.
2010-10-24Added test for error stanzas.Lance Stout
2010-10-24More JID unit tests.Lance Stout
sleekxmpp.xmlstream.jid now has 100% coverage!
2010-10-24Fixed resource bug in JIDs.Lance Stout
JIDs without resources will return '' instead of the bare JID. Cleaned up JID tests, and added check_JID to SleekTest.
2010-10-24Added stream tests for rosters.Lance Stout
2010-10-21Fixed mixed text and elements bug in tostring.Lance Stout
XML of the form <a>foo <b>bar</b> baz</a> was outputted as <a>foo <b>bar</b> baz baz</a>. Includes unit test.
2010-10-17Underscore names by default.Lance Stout
Stanza objects now accept the use of underscored names. The CamelCase versions are still available for backwards compatibility, but are discouraged. The property stanza.values now maps to the old getStanzaValues and setStanzaValues, in addition to _set_stanza_values and _get_stanza_values.