diff options
author | Lance Stout <lancestout@gmail.com> | 2013-09-12 10:15:53 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2013-09-12 10:15:53 -0700 |
commit | 07284f380fa0a893a5ef56774fcef71a47851668 (patch) | |
tree | 27e815557475b9c8f8edb2c37bb242d3b40143b5 | |
parent | e60401278f8933211eaac168475a3c332d62531c (diff) | |
parent | a1d988fed5839a0d6f44340ed3dae8496e1b9a58 (diff) | |
download | slixmpp-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__.py | 13 | ||||
-rwxr-xr-x | testall.py | 10 |
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: @@ -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)) |