summaryrefslogtreecommitdiff
path: root/redis/_compat.py
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2020-04-13 11:49:39 -0700
committerGitHub <noreply@github.com>2020-04-13 11:49:39 -0700
commitae173f0f5126dcd8db9f43d6fdb37439873e9233 (patch)
treed9a57bdbb7d1d254abd1dc409ea403b6b0dae9fd /redis/_compat.py
parent1f857f0053606c23cb3f1abd794e3efbf6981e09 (diff)
downloadredis-py-ae173f0f5126dcd8db9f43d6fdb37439873e9233.tar.gz
Enable BytesWarning during test and fix discovered case (#1322)
The Python command line argument -b causes Python to emit a warning when bytes and str usage is mixed. This is generally considered bad practice as either one or the other is required. Enabling this feature during tests helps catch them before reaching production. The warning appeared as: tests/test_scripting.py::TestScripting::test_eval_msgpack_pipeline_error_in_lua .../redis-py/redis/client.py:3967: BytesWarning: str() on a bytes instance cmd = ' '.join(imap(safe_unicode, command))
Diffstat (limited to 'redis/_compat.py')
-rw-r--r--redis/_compat.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/redis/_compat.py b/redis/_compat.py
index e4cc34c..146e37d 100644
--- a/redis/_compat.py
+++ b/redis/_compat.py
@@ -166,6 +166,11 @@ else:
def nativestr(x):
return x if isinstance(x, str) else x.decode('utf-8', 'replace')
+ def safe_unicode(value):
+ if isinstance(value, bytes):
+ value = value.decode('utf-8', 'replace')
+ return str(value)
+
next = next
unichr = chr
imap = map
@@ -173,7 +178,6 @@ else:
xrange = range
basestring = str
unicode = str
- safe_unicode = str
long = int
BlockingIOError = BlockingIOError