Commit graph

205 commits

Author SHA1 Message Date
Lance Stout
7351fe1a02 Fix bug introduced while fixing another bug.
Threaded event handlers now handle exceptions again.
2010-11-04 14:35:35 -04:00
Nathan Fritz
38c2f51f83 fixed indent errors 2010-11-04 11:39:41 -07:00
Lance Stout
5769935720 Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop 2010-11-03 12:39:44 -04:00
Lance Stout
0214db7545 Catch exceptions for direct events.
Events triggered with direct=True will have exceptions caught.

Note that all event handlers in a direct event will currently run
in the same thread.
2010-11-03 12:38:13 -04:00
Lance Stout
9e248bb852 Fix bug in XEP-0030 plugin.
xep_0030 still referenced event_handlers. Added the method event_handled
which will return the number of registered handlers for an event to
resolve the issue.
2010-10-31 18:27:52 -04:00
Lance Stout
973890e2c9 Added try/except for setting signal handlers.
Setting signal handlers from inside a thread is not supported in Python,
but some applications need to run Sleek from a child thread.

SleekXMPP applications that run inside a child thread will NOT be able
to detect SIGHUP or SIGTERM events. Those must be caught and managed by
the main program.
2010-10-28 10:42:23 -04:00
Lance Stout
9c08e56ed0 SSL and signal fixes.
Made setting the SIG* handlers conditional on if the signal defined for
the OS.

Added the attribute ssl_version to XMLStream to set the version of SSL
used during connection. It defaults to ssl.PROTOCOL_TLSv1, but OpenFire
tends to require ssl.PROTOCOL_SSLv23.
2010-10-27 19:27:47 -04:00
Lance Stout
5bdcd9ef9d Made exceptions work.
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-25 15:09:56 -04:00
Lance Stout
185d7cf28e More JID unit tests.
sleekxmpp.xmlstream.jid now has 100% coverage!
2010-10-24 19:06:54 -04:00
Lance Stout
9e3d506651 Fixed resource bug in JIDs.
JIDs without resources will return '' instead of the bare JID.

Cleaned up JID tests, and added check_JID to SleekTest.
2010-10-24 18:22:41 -04:00
Lance Stout
8f55704928 Fixed mixed text and elements bug in tostring.
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-21 16:21:28 -04:00
Nathan Fritz
d88999691c misc small tweaks 2010-10-20 20:14:26 -07:00
Nathan Fritz
77eab6544f reconnect if session isn't established within 15 seconds 2010-10-20 19:18:27 -07:00
Nathan Fritz
11264fe0a8 capture SIGHUP and SIGTERM (windows) and disconnect; also testall no longer loads string26 with python3 2010-10-20 17:30:12 -07:00
Nathan Fritz
6e34b2cfdd fixed disconnect 2010-10-20 16:32:50 -07:00
Lance Stout
e18354ae0e Continue converting to underscored names. 2010-10-18 09:06:54 -04:00
Lance Stout
4375ac7d8b Underscore names by default.
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.
2010-10-17 22:04:42 -04:00
Lance Stout
505a63da3a Cleanup, restore PEP8. 2010-10-16 21:15:31 -04:00
Florent Le Coz
2755d732a4 Remove deprecation warnings
Remove all the deprecation warnings by using only boundjid.
And also fix a indentation error.
2010-10-17 08:55:30 +08:00
Florent Le Coz
2d18d905a5 Anonymous authentication
Implemented ANONYMOUS authentication on the ClientXMPP class.
To use it, you just need to provide a domain (e.g 'anon.example.com')
with an optional resource (e.g 'anon.example.com/resource') as the JID,
with no password. The JID class has been improved to accept
domains as fulljid.

You can test this with echo_client.py
python echo_client.py -j anon.louiz.org/  # anonymous with a resource
                                          # defined by the server
python echo_client.py -j anon.louiz.org/resource  # anonymous with given
                                                  # resource

The "normal" authentication method still works exactly like before.
2010-10-17 08:55:30 +08:00
Nathan Fritz
8b5c1010de fixed JID to accept server/domain/host as the same 2010-10-14 16:34:16 -07:00
Nathan Fritz
aeb7999e6a don't import statemachine 2010-10-14 16:08:50 -07:00
Nathan Fritz
dc001bb201 deprecated jid, fulljid, server, user, resource properties and added boundjid JID 2010-10-14 15:50:54 -07:00
Nathan Fritz
0d0b963fe5 fixed socket name collision in xmlstream.py and fixed python 3.x compatibility 2010-10-14 10:58:07 -07:00
Nathan Fritz
a41a4369c6 disconnect cleanly 2010-10-13 18:21:05 -07:00
Nathan Fritz
7ad7a29a8f new state machine in place 2010-10-13 18:15:21 -07:00
Lance Stout
a8b948cd33 SleekTest may now run against a live stream.
Moved SleekTest to sleekxmpp.test package.
Corrected error in XML compare method.
Added TestLiveSocket to run stream tests against live streams.
Modified XMLStream to work with TestLiveSocket.
2010-10-07 19:43:51 -04:00
Lance Stout
e02ffe8547 Corrected test errors.
There was a bug in the XML compare method.
2010-10-07 19:42:28 -04:00
Lance Stout
78141fe5f3 Fixed dealing with deleting handlers.
The call to .index() may raise a ValueError if the item is not in the
list. So both the .index() and .pop() calls should be in the try block.
2010-10-07 09:17:28 -04:00
Lance Stout
c294c1a85c More PEP8 compliance cleanups.
Cleaned up the atom entry stanza.
2010-10-06 15:12:39 -04:00
Lance Stout
cbe76c8a70 Cleaned up the Scheduler. 2010-10-06 15:03:21 -04:00
Lance Stout
ed366b338d Moved ClientXMPP to clientxmpp.py.
Cleaned up the __init__.py files.
2010-10-06 14:20:32 -04:00
Lance Stout
d0ccbf6b7a Merge branch 'develop' of github.com:fritzy/SleekXMPP into develop 2010-10-06 14:06:02 -04:00
Lance Stout
e1866ab328 Made first pass at cleaning up ClientXMPP.
Added self.stream_ns to BaseXMPP.
Moved connected/disconnected events and logging to XMLStream.
2010-10-06 14:03:19 -04:00
fritzy
3ffa09ba7c deal with deleting handlers that are no longer there 2010-10-06 17:58:03 +00:00
Lance Stout
178608f4c0 XMLStream cleanup.
Added RestartStream as a top level item in sleekxmpp.xmlstream.

Fixed trailing whitespace.
2010-10-06 10:45:36 -04:00
Lance Stout
9a34c9a9a1 Modified event handling to use the event queue.
Updated tests to match. (Needed to add a small wait to make sure
the event got through the queue before checking the results.)
2010-10-01 13:49:58 -04:00
Lance Stout
2662131124 Fixed tostring bug when using mapped namespaces. 2010-10-01 12:41:35 -04:00
Lance Stout
bb219595a7 Moved event functions to XMLStream.
This is just a transplant, modifying event to use the main
event queue has not been implemented yet.
2010-10-01 12:24:49 -04:00
Lance Stout
fcdd57ce54 Moved add_handler, send, and sendXML to XMLStream. 2010-10-01 11:15:51 -04:00
Lance Stout
5522443e0e Moved getNewId and getId to XMLStream.
This prepares the way for moving add_handler to XMLStream.

Since stanzas, matchers, and handlers in any XML stream will typically
use unique IDs, XMLStream is a good place for these methods.
2010-10-01 10:46:37 -04:00
Lance Stout
55cfe69fef Cleaned up trailing whitespace. 2010-10-01 10:09:10 -04:00
Lance Stout
6de87a1cbf Fixed line lengths and trailing whitespace.
The pep8 command is now pleased.
2010-09-30 13:06:16 -04:00
Lance Stout
7c10ff16fb Made a first pass at cleaning up XMLStream.
A few extra methods are mentioned in the docs, but those have not
been moved to XMLStream from BaseXMPP yet.
2010-09-30 12:56:22 -04:00
Lance Stout
5c3066ba30 Updated all of the matcher classes in sleekxmpp.xmlstream.matcher.
Matchers are now PEP8 compliant and have documentation.
2010-09-01 14:28:43 -04:00
Lance Stout
576eefb097 Fixed line spacing in filesocket.py to please pep8. 2010-09-01 14:25:30 -04:00
Lance Stout
aebd115ba2 A few cleanups to make things simpler. 2010-09-01 14:20:34 -04:00
Lance Stout
3749c1b88c Fixed ElementBase.match to match using sub_interface elements. 2010-08-30 17:12:10 -04:00
Lance Stout
998741b87e Fixed typos in ElementBase._fix_ns 2010-08-30 15:25:59 -04:00
Lance Stout
9c62bce206 Updated ElementBase.match to respect namespaces with slashes.
Required adding option to _fix_ns to not propagate namespaces to child elements.
2010-08-30 14:55:30 -04:00
Lance Stout
f5ae27da4f Fix some documentation typos. 2010-08-27 18:16:09 -04:00
Lance Stout
89fb15e896 Updated the suite of handler classes with documentation.
Updated XMLStream to return True or False from removeHandler to indicate if the handler
existed and was removed.

Waiter handlers now unregister themselves after timing out.
2010-08-27 16:42:26 -04:00
Lance Stout
bb6f4af8e2 Added unit tests for StanzaBase. 2010-08-27 12:22:35 -04:00
Lance Stout
6677df39f2 Updated xmlstream.filesocket. 2010-08-27 11:29:48 -04:00
Lance Stout
a2c515bc97 Updated StanzaBase with documentation. 2010-08-27 11:07:20 -04:00
Lance Stout
ca6ce26b0d Added comments to _fix_ns to clarify the cleaning procedure. 2010-08-26 18:40:58 -04:00
Lance Stout
00d7952001 Fixed ElementBase._fix_ns and related methods to respect namespaces which contain forward slashes. 2010-08-26 18:18:00 -04:00
Lance Stout
56766508b3 Fixed indentation in StanzaBase. 2010-08-26 14:19:36 -04:00
Lance Stout
5c59f5baca Clarify ElementBase documentation. 2010-08-26 14:07:09 -04:00
Lance Stout
e16b37d2be Fixed line lengths in ElementBase to comply with PEP8. 2010-08-26 13:55:23 -04:00
Lance Stout
d68bc2ba07 Finished the update of ElementBase with docs and unit tests.
Corrected bugs in equality comparisons between stanzas.
2010-08-26 13:49:36 -04:00
Lance Stout
10298a6eab Updated the remaining ElementBase methods.
Remaining ElementBase todos:
    Write the class documentation for ElementBase.
    Write unit tests for the __magic__ methods.
2010-08-26 10:08:22 -04:00
Lance Stout
a3580dcef9 Fixed ElementBase.match to respect namespaces. 2010-08-25 14:54:09 -04:00
Lance Stout
1eaa9cb28c Updated ElementBase.match and added unit tests. 2010-08-25 14:40:16 -04:00
Lance Stout
5d458bf6c2 Updated ElementBase._delSub and added unit tests.
_delSub can now accept a path and will optionally remove any empty parent elements after deleting the target elements.
2010-08-25 10:52:07 -04:00
Lance Stout
2fa58a74ab Fixed indenting issue. 2010-08-24 09:44:09 -04:00
Lance Stout
c8f406d1b3 Updated ElementBase._setSubText and added unit tests.
_setSubText can now handle elements specified by an XPath expression, and
will build up the element tree as needed, reusing an existing elements in
the path.
2010-08-24 09:37:42 -04:00
Lance Stout
203986dd7c Updated ElementBase._getSubText and added unit tests.
Also added ElementBase._fix_ns() to apply the stanza namespace to elements that don't have a namespace.
2010-08-24 08:55:37 -04:00
fritzy
345656926e added form compatibility with old api, stanzas now bool() to True on 2.x, jid attributes will return '' if not set 2010-08-21 22:48:43 +00:00
Lance Stout
8a0616b3e0 Updated ElementBase methods _getAttr, _setAttr, and _delAttr with docs and tests. 2010-08-19 20:41:26 -04:00
Lance Stout
b71cfe0492 Small cleanup in ElementBase.__setitem__ 2010-08-19 19:14:18 -04:00
Lance Stout
fac3bca1f6 Updated ElementBase.__delitem__ and added unit tests. 2010-08-19 19:11:12 -04:00
Lance Stout
e4240dd593 Updated ElementBase.__setitem__ and added unit tests. 2010-08-19 14:21:58 -04:00
Lance Stout
2f6f4fc16d Updated ElementBase.__getitem__ with docs and unit tests. 2010-08-13 21:33:11 -04:00
Lance Stout
fe49b8c377 Updated getStanzaValues and setStanzaValues with docs and unit tests. 2010-08-13 20:05:24 -04:00
Lance Stout
b580a3138d Updated ElementBase.enable and ElementBase.initPlugin 2010-08-13 12:51:07 -04:00
Lance Stout
c20fab0f6c Updated ElementBase.setup, and added unit tests. 2010-08-13 12:24:47 -04:00
Lance Stout
415520200e Updated ElementBase.__init__ 2010-08-13 10:26:33 -04:00
Lance Stout
747001d33c Adjust first level indenting in ElementBase to prepare for cleanup. 2010-08-13 10:15:52 -04:00
Lance Stout
b0fb205c16 Updated registerStanzaPlugin and the XML test type. 2010-08-13 10:12:51 -04:00
Lance Stout
4b52007e8c Cleaned stanzabase imports. 2010-08-12 23:24:09 -04:00
Lance Stout
4d1f071f83 Updated the use of tostring in xmlstream.py
Now uses the xmlns and stream parameters to reduce the number of
extra xmlns attributes used in the logging output.

Added self.default_ns to XMLStream just to be safe.
2010-08-05 23:11:22 -04:00
Lance Stout
3c0dfb56e6 Update tostring docs to clarify what the xmlns and stanza_ns parameters do. 2010-08-05 20:43:38 -04:00
Lance Stout
e077204a16 Replaced the ToString class with a tostring function.
The sleekxmpp.xmlstream.tostring and sleekxmpp.xmlstream.tostring26 packages
have been merged to sleekxmpp.xmlstream.tostring. The __init__.py file will
import the appropriate tostring function depending on the Python version.

The setup.py file has been updated with the package changes.

ElementBase is now a direct descendent of object and does not subclass ToString.

Stanza objects now return their XML contents for __repr__.
2010-08-05 20:26:41 -04:00
Lance Stout
c54466596f Modified sleekxmpp.xmlstream.tostring to import ToString class based on Python version.
The package sleekxmpp.xmlstream.tostring26 remains for now until stanzabase is updated, but is no longer needed.
2010-08-04 14:41:37 -04:00
Lance Stout
aa1dbe97e0 Updated and simplified new JID class to have more documentation and use PEP8 style. 2010-08-04 00:33:28 -04:00
Lance Stout
1cedea2804 Added optional default value to _getAttr. 2010-07-30 14:11:24 -04:00
Lance Stout
60a183b011 Added useful imports to the xmlstream, xmlstream.handler, and xmlstream.matcher __init__.py files to make it simpler to import common classes. 2010-07-29 20:18:04 -04:00
Lance Stout
a49f511a2f Added RESPONSE_TIMEOUT constant to sleekxmpp.xmlstream to serve as a single place to specify a default timeout value when waiting for a stanza response. 2010-07-29 20:16:57 -04:00
Lance Stout
d148f633f3 Modified ElementBase _getSubText, _setSubText, and _delSubText to
use the namespace in a tag name if one is given and to use
self.namespace otherwise.
2010-07-29 11:04:21 -04:00
Nathan Fritz
2b6454786a Merge branch 'experimental' of git@github.com:fritzy/SleekXMPP into experimental 2010-07-26 18:13:54 -07:00
Nathan Fritz
a349a2a317 removed jid from stanzabase to external file 2010-07-26 18:13:34 -07:00
Nathan Fritz
2cb82afc2c updated and moved jid class -- jids now have setters 2010-07-26 18:13:09 -07:00
Lance Stout
c8989c04f3 Replaced traceback calls to use logging.exception where applicable. 2010-07-26 21:02:25 -04:00
Lance Stout
ec860bf9e2 Add StateManager as replacement for StateMachine. 2010-07-26 19:44:42 -04:00
Joe Hildebrand
d70a6e6f32 Issue 26. Only set from address in reply() for components 2010-07-20 13:55:48 -07:00
Lance Stout
690eaf8d3c Updated license notices to use the correct MIT format. Also corrected references to nonexistant license.txt to LICENSE. 2010-07-20 11:19:49 -04:00
Nathan Fritz
fec8578cf6 stanza should not have setValues/getValues because that conflicts with attribute accessors 2010-07-19 15:38:48 -07:00
Nathan Fritz
f80b3285d4 indent problem on stanzabase 2010-07-19 14:57:21 -07:00
Lance Stout
d5e42ac0e7 Condensed all of the stanzaPlugin functions into a single registerStanzaPlugin function.
Updated plugins and tests to use new function.
2010-07-19 13:58:53 -04:00