summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Simpson <cjsimpson@gmail.com>2016-06-12 18:35:47 -0400
committerChris Simpson <cjsimpson@gmail.com>2016-06-12 18:35:47 -0400
commitcb15dfcfa126f5e623b98c6bdf017941bf084cef (patch)
treec0c3800cc508e9b8f2d068581576c000e08f292c
parent360c2124554b1056299c54850771d0cd28241450 (diff)
parent3bdf81ab41464d8e918080234912fc8fd86629af (diff)
downloadredis-py-cb15dfcfa126f5e623b98c6bdf017941bf084cef.tar.gz
Merge branch 'master' of https://github.com/andymccurdy/redis-py
-rw-r--r--redis/_compat.py11
-rwxr-xr-xredis/connection.py3
-rw-r--r--tox.ini4
3 files changed, 15 insertions, 3 deletions
diff --git a/redis/_compat.py b/redis/_compat.py
index c4a72d9..4713d01 100644
--- a/redis/_compat.py
+++ b/redis/_compat.py
@@ -9,6 +9,15 @@ if sys.version_info[0] < 3 or (sys.version_info[0] == 3 and
import time
import errno
+ from select import select as _select
+
+ def select(rlist, wlist, xlist, timeout):
+ while True:
+ try:
+ return _select(rlist, wlist, xlist, timeout)
+ except InterruptedError:
+ continue
+
# Wrapper for handling interruptable system calls.
def _retryable_call(s, func, *args, **kwargs):
# Some modules (SSL) use the _fileobject wrapper directly and
@@ -54,6 +63,8 @@ if sys.version_info[0] < 3 or (sys.version_info[0] == 3 and
return _retryable_call(sock, sock.recv_into, *args, **kwargs)
else: # Python 3.5 and above automatically retry EINTR
+ from select import select
+
def recv(sock, *args, **kwargs):
return sock.recv(*args, **kwargs)
diff --git a/redis/connection.py b/redis/connection.py
index a552820..f0e28e3 100755
--- a/redis/connection.py
+++ b/redis/connection.py
@@ -1,7 +1,6 @@
from __future__ import with_statement
from distutils.version import StrictVersion
from itertools import chain
-from select import select
import os
import socket
import sys
@@ -17,7 +16,7 @@ except ImportError:
from redis._compat import (b, xrange, imap, byte_to_chr, unicode, bytes, long,
BytesIO, nativestr, basestring, iteritems,
LifoQueue, Empty, Full, urlparse, parse_qs,
- recv, recv_into, unquote)
+ recv, recv_into, select, unquote)
from redis.exceptions import (
RedisError,
ConnectionError,
diff --git a/tox.ini b/tox.ini
index c8c6123..ca1fabc 100644
--- a/tox.ini
+++ b/tox.ini
@@ -3,7 +3,9 @@ minversion = 1.8
envlist = {py26,py27,py32,py33,py34,py35}-{plain,hiredis}, pep8
[testenv]
-deps = pytest >= 2.5.0
+deps =
+ pytest==2.9.2
+ mock==2.0.0
hiredis: hiredis >= 0.1.3
commands = py.test {posargs}