summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLance Stout <lancestout@gmail.com>2013-09-12 10:15:53 -0700
committerLance Stout <lancestout@gmail.com>2013-09-12 10:15:53 -0700
commit07284f380fa0a893a5ef56774fcef71a47851668 (patch)
tree27e815557475b9c8f8edb2c37bb242d3b40143b5
parente60401278f8933211eaac168475a3c332d62531c (diff)
parenta1d988fed5839a0d6f44340ed3dae8496e1b9a58 (diff)
downloadslixmpp-07284f380fa0a893a5ef56774fcef71a47851668.tar.gz
slixmpp-07284f380fa0a893a5ef56774fcef71a47851668.tar.bz2
slixmpp-07284f380fa0a893a5ef56774fcef71a47851668.tar.xz
slixmpp-07284f380fa0a893a5ef56774fcef71a47851668.zip
Merge pull request #207 from spartanbits/pull_request_gevent_check
Pull request gevent check
-rw-r--r--sleekxmpp/util/__init__.py13
-rwxr-xr-xtestall.py10
2 files changed, 19 insertions, 4 deletions
diff --git a/sleekxmpp/util/__init__.py b/sleekxmpp/util/__init__.py
index 1e4af02d..957a9335 100644
--- a/sleekxmpp/util/__init__.py
+++ b/sleekxmpp/util/__init__.py
@@ -18,7 +18,18 @@ from sleekxmpp.util.misc_ops import bytes, unicode, hashes, hash, \
# Standardize import of Queue class:
import sys
-if 'gevent' in sys.modules:
+
+def _gevent_threads_enabled():
+ if not 'gevent' in sys.modules:
+ return False
+ try:
+ from gevent import thread as green_thread
+ thread = __import__('thread')
+ return thread.LockType is green_thread.LockType
+ except ImportError:
+ return False
+
+if _gevent_threads_enabled():
import gevent.queue as queue
Queue = queue.JoinableQueue
else:
diff --git a/testall.py b/testall.py
index c9ad5448..2cb6f538 100755
--- a/testall.py
+++ b/testall.py
@@ -1,7 +1,11 @@
#!/usr/bin/env python
-import os
import sys
+if len(sys.argv)>1 and sys.argv[1].lower() == 'gevent':
+ from gevent import monkey
+ monkey.patch_all()
+
+import os
import logging
import unittest
import distutils.core
@@ -57,7 +61,7 @@ class TestCommand(distutils.core.Command):
if __name__ == '__main__':
result = run_tests()
- print("<tests %s ran='%s' errors='%s' fails='%s' success='%s' />" % (
+ print("<tests %s ran='%s' errors='%s' fails='%s' success='%s' gevent_enabled=%s/>" % (
"xmlns='http//andyet.net/protocol/tests'",
result.testsRun, len(result.errors),
- len(result.failures), result.wasSuccessful()))
+ len(result.failures), result.wasSuccessful(),'gevent' in sys.modules))