Accepting request 786458 from home:pgajdos:python

- version update to 3.4.1
  * 3.4.1
    * Move the username argument in the Redis and Connection classes to the
      end of the argument list. This helps those poor souls that specify all
      their connection options as non-keyword arguments. #1276
    * Prior to ACL support, redis-py ignored the username component of
      Connection URLs. With ACL support, usernames are no longer ignored and
      are used to authenticate against an ACL rule. Some cloud vendors with
      managed Redis instances (like Heroku) provide connection URLs with a
      username component pre-ACL that is not intended to be used. Sending that
      username to Redis servers < 6.0.0 results in an error. Attempt to detect
      this condition and retry the AUTH command with only the password such
      that authentication continues to work for these users. #1274
    * Removed the __eq__ hooks to Redis and ConnectionPool that were added
      in 3.4.0. This ended up being a bad idea as two separate connection
      pools be considered equal yet manage a completely separate set of
      connections.
  * 3.4.0
    * Allow empty pipelines to be executed if there are WATCHed keys.
      This is a convenient way to test if any of the watched keys changed
      without actually running any other commands. Thanks @brianmaissy.
      #1233, #1234
    * Removed support for end of life Python 3.4.
    * Added support for all ACL commands in Redis 6. Thanks @IAmATeaPot418
      for helping.
    * Pipeline instances now always evaluate to True. Prior to this change,
      pipeline instances relied on __len__ for boolean evaluation which
      meant that pipelines with no commands on the stack would be considered
      False. #994
    * Client instances and Connection pools now support a 'client_name'

OBS-URL: https://build.opensuse.org/request/show/786458
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-redis?expand=0&rev=52
This commit is contained in:
Tomáš Chvátal 2020-03-19 12:27:46 +00:00 committed by Git OBS Bridge
parent bf0bba0abf
commit f9b4e360ab
5 changed files with 61 additions and 70 deletions

View File

@ -1,62 +0,0 @@
From 90532bd2c4d6d74110ab37d800653d7abafe2e0b Mon Sep 17 00:00:00 2001
From: tuxmaster5000 <837503+tuxmaster5000@users.noreply.github.com>
Date: Fri, 18 Oct 2019 09:47:27 +0200
Subject: [PATCH] Support old EPEL-7 Redis. (#1227)
Upstream: merged(https://github.com/andymccurdy/redis-py/pull/1227)
Fix test suite with Redis versions pre-5.0.0
---
tests/test_monitor.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/tests/test_monitor.py b/tests/test_monitor.py
index 09ec21bd..fe9e68a9 100644
--- a/tests/test_monitor.py
+++ b/tests/test_monitor.py
@@ -1,5 +1,7 @@
from __future__ import unicode_literals
from redis._compat import unicode
+from .conftest import (skip_if_server_version_lt, skip_if_server_version_gte,
+ skip_unless_arch_bits)
def wait_for_command(client, monitor, command):
@@ -17,12 +19,14 @@ def wait_for_command(client, monitor, command):
class TestPipeline(object):
+ @skip_if_server_version_lt('5.0.0')
def test_wait_command_not_found(self, r):
"Make sure the wait_for_command func works when command is not found"
with r.monitor() as m:
response = wait_for_command(r, m, 'nothing')
assert response is None
+ @skip_if_server_version_lt('5.0.0')
def test_response_values(self, r):
with r.monitor() as m:
r.ping()
@@ -34,12 +38,14 @@ def test_response_values(self, r):
assert isinstance(response['client_port'], unicode)
assert response['command'] == 'PING'
+ @skip_if_server_version_lt('5.0.0')
def test_command_with_quoted_key(self, r):
with r.monitor() as m:
r.get('foo"bar')
response = wait_for_command(r, m, 'GET foo"bar')
assert response['command'] == 'GET foo"bar'
+ @skip_if_server_version_lt('5.0.0')
def test_command_with_binary_data(self, r):
with r.monitor() as m:
byte_string = b'foo\x92'
@@ -47,6 +53,7 @@ def test_command_with_binary_data(self, r):
response = wait_for_command(r, m, 'GET foo\\x92')
assert response['command'] == 'GET foo\\x92'
+ @skip_if_server_version_lt('5.0.0')
def test_lua_script(self, r):
with r.monitor() as m:
script = 'return redis.call("GET", "foo")'

View File

@ -1,3 +1,58 @@
-------------------------------------------------------------------
Thu Mar 19 11:37:31 UTC 2020 - pgajdos@suse.com
- version update to 3.4.1
* 3.4.1
* Move the username argument in the Redis and Connection classes to the
end of the argument list. This helps those poor souls that specify all
their connection options as non-keyword arguments. #1276
* Prior to ACL support, redis-py ignored the username component of
Connection URLs. With ACL support, usernames are no longer ignored and
are used to authenticate against an ACL rule. Some cloud vendors with
managed Redis instances (like Heroku) provide connection URLs with a
username component pre-ACL that is not intended to be used. Sending that
username to Redis servers < 6.0.0 results in an error. Attempt to detect
this condition and retry the AUTH command with only the password such
that authentication continues to work for these users. #1274
* Removed the __eq__ hooks to Redis and ConnectionPool that were added
in 3.4.0. This ended up being a bad idea as two separate connection
pools be considered equal yet manage a completely separate set of
connections.
* 3.4.0
* Allow empty pipelines to be executed if there are WATCHed keys.
This is a convenient way to test if any of the watched keys changed
without actually running any other commands. Thanks @brianmaissy.
#1233, #1234
* Removed support for end of life Python 3.4.
* Added support for all ACL commands in Redis 6. Thanks @IAmATeaPot418
for helping.
* Pipeline instances now always evaluate to True. Prior to this change,
pipeline instances relied on __len__ for boolean evaluation which
meant that pipelines with no commands on the stack would be considered
False. #994
* Client instances and Connection pools now support a 'client_name'
argument. If supplied, all connections created will call CLIENT SETNAME
as soon as the connection is opened. Thanks to @Habbie for supplying
the basis of this change. #802
* Added the 'ssl_check_hostname' argument to specify whether SSL
connections should require the server hostname to match the hostname
specified in the SSL cert. By default 'ssl_check_hostname' is False
for backwards compatibility. #1196
* Slightly optimized command packing. Thanks @Deneby67. #1255
* Added support for the TYPE argument to SCAN. Thanks @netocp. #1220
* Better thread and fork safety in ConnectionPool and
BlockingConnectionPool. Added better locking to synchronize critical
sections rather than relying on CPython-specific implementation details
relating to atomic operations. Adjusted how the pools identify and
deal with a fork. Added a ChildDeadlockedError exception that is
raised by child processes in the very unlikely chance that a deadlock
is encountered. Thanks @gmbnomis, @mdellweg, @yht804421715. #1270,
#1138, #1178, #906, #1262
* Added __eq__ hooks to the Redis and ConnectionPool classes.
Thanks @brainix. #1240
- deleted patches
- 0001-fix-tests-with-redis-pre-5.0.0.patch (upstreamed)
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Dec 13 19:00:52 UTC 2019 - Matthias Fehring <buschmann23@opensuse.org> Fri Dec 13 19:00:52 UTC 2019 - Matthias Fehring <buschmann23@opensuse.org>

View File

@ -1,7 +1,7 @@
# #
# spec file for package python-redis # spec file for package python-redis
# #
# Copyright (c) 2019 SUSE LLC # Copyright (c) 2020 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -18,14 +18,13 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}} %{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-redis Name: python-redis
Version: 3.3.11 Version: 3.4.1
Release: 0 Release: 0
Summary: Python client for Redis key-value store Summary: Python client for Redis key-value store
License: MIT License: MIT
Group: Development/Languages/Python Group: Development/Languages/Python
URL: https://github.com/andymccurdy/redis-py URL: https://github.com/andymccurdy/redis-py
Source: https://files.pythonhosted.org/packages/source/r/redis/redis-%{version}.tar.gz Source: https://files.pythonhosted.org/packages/source/r/redis/redis-%{version}.tar.gz
Patch0: 0001-fix-tests-with-redis-pre-5.0.0.patch
BuildRequires: %{python_module mock} BuildRequires: %{python_module mock}
BuildRequires: %{python_module pytest >= 2.7.0} BuildRequires: %{python_module pytest >= 2.7.0}
BuildRequires: %{python_module setuptools} BuildRequires: %{python_module setuptools}
@ -43,7 +42,6 @@ The Python interface to the Redis key-value store.
%prep %prep
%setup -q -n redis-%{version} %setup -q -n redis-%{version}
%patch0 -p1
%build %build
%python_build %python_build
@ -54,7 +52,7 @@ The Python interface to the Redis key-value store.
%check %check
%{_sbindir}/redis-server --port 6379 & %{_sbindir}/redis-server --port 6379 &
%python_exec setup.py test %pytest
killall redis-server killall redis-server
%files %{python_files} %files %{python_files}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8d0fc278d3f5e1249967cba2eb4a5632d19e45ce5c09442b8422d15ee2c22cc2
size 131072

3
redis-3.4.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0dcfb335921b88a850d461dc255ff4708294943322bd55de6cfd68972490ca1f
size 137568