Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-redis for openSUSE:Factory 
checked in at 2022-06-17 21:20:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-redis (Old)
 and      /work/SRC/openSUSE:Factory/.python-redis.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-redis"

Fri Jun 17 21:20:26 2022 rev:31 rq:982470 version:4.3.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-redis/python-redis.changes        
2021-07-18 23:44:52.599079525 +0200
+++ /work/SRC/openSUSE:Factory/.python-redis.new.1548/python-redis.changes      
2022-06-17 21:22:52.878785359 +0200
@@ -1,0 +2,354 @@
+Mon Jun 13 10:18:12 UTC 2022 - Ben Greiner <c...@bnavigator.de>
+
+- Delete unused redismod.conf, remove duplicate Source entry for
+  tox.ini
+
+-------------------------------------------------------------------
+Mon Jun 13 07:24:11 UTC 2022 - Matej Cepl <mc...@suse.com>
+
+- Add redismod.conf and tox.ini as Sources to SPEC file.
+
+-------------------------------------------------------------------
+Sat Jun 11 11:03:12 UTC 2022 - Ben Greiner <c...@bnavigator.de>
+
+- Update to version 4.3.3
+  * Fix Lock crash, and versioning 4.3.3 (#2210)
+  * Async cluster: improve docs (#2208)
+- Release 4.3.2
+  * SHUTDOWN - add support for the new NOW, FORCE and ABORT modifiers (#2150)
+  * Adding pipeline support for async cluster (#2199)
+  * Support CF.MEXISTS + Clean bf/commands.py (#2184)
+  * Extending query_params for FT.PROFILE (#2198)
+  * Implementing ClusterPipeline Lock (#2190)
+  * Set default response_callbacks to redis.asyncio.cluster.ClusterNode (#2201)
+  * Add default None for maxlen at xtrim command (#2188)
+  * Async cluster: add/update typing (#2195)
+  * Changed list type to single element type (#2203)
+  * Made sync lock consistent and added types to it (#2137)
+  * Async cluster: optimisations (#2205)
+  * Fix typos in README (#2206)
+  * Fix modules links to https://redis.io/commands/ (#2185)
+
+-------------------------------------------------------------------
+Tue May 10 18:19:07 UTC 2022 - Ben Greiner <c...@bnavigator.de>
+
+- Update to version 4.3.1
+    * Allow negative `retries` for `Retry` class to retry forever
+    * Add `items` parameter to `hset` signature
+    * Create codeql-analysis.yml (#1988). Thanks @chayim
+    * Add limited support for Lua scripting with RedisCluster
+    * Implement `.lock()` method on RedisCluster
+    * Fix cursor returned by SCAN for RedisCluster & change default
+      target to PRIMARIES
+    * Fix scan_iter for RedisCluster
+    * Remove verbose logging when initializing ClusterPubSub,
+      ClusterPipeline or RedisCluster
+    * Fix broken connection writer lock-up for asyncio (#2065)
+    * Fix auth bug when provided with no username (#2086)
+- Release 4.1.3
+    * Fix flushdb and flushall (#1926)
+    * Add redis5 and redis4 dockers (#1871)
+    * Change json.clear test multi to be up to date with redisjson
+      (#1922)
+    * Fixing volume for unstable_cluster docker (#1914)
+    * Update changes file with changes since 4.0.0-beta2 (#1915)
+- Release 4.1.2
+    * Invalid OCSP certificates should raise ConnectionError on
+      failed validation (#1907)
+    * Added retry mechanism on socket timeouts when connecting to
+      the server (#1895)
+    * LMOVE, BLMOVE return incorrect responses (#1906)
+    * Fixing AttributeError in UnixDomainSocketConnection (#1903)
+    * Fixing TypeError in GraphCommands.explain (#1901)
+    * For tests, increasing wait time for the cluster (#1908)
+    * Increased pubsub's wait_for_messages timeout to prevent flaky
+      tests (#1893)
+    * README code snippets formatted to highlight properly (#1888)
+    * Fix link in the main page (#1897)
+    * Documentation fixes: JSON Example, SSL Connection Examples,
+      RTD version (#1887)
+    * Direct link to readthedocs (#1885)
+- Release 4.1.1
+    * Add retries to connections in Sentinel Pools (#1879)
+    * OCSP Stapling Support (#1873)
+    * Define incr/decr as aliases of incrby/decrby (#1874)
+    * FT.CREATE - support MAXTEXTFIELDS, TEMPORARY, NOHL, NOFREQS,
+      SKIPINITIALSCAN (#1847)
+    * Timeseries docs fix (#1877)
+    * get_connection: catch OSError too (#1832)
+    * Set keys var otherwise variable not created (#1853)
+    * Clusters should optionally require full slot coverage (#1845)
+    * Triple quote docstrings in client.py PEP 257 (#1876)
+    * syncing requirements (#1870)
+    * Typo and typing in GraphCommands documentation (#1855)
+    * Allowing poetry and redis-py to install together (#1854)
+    * setup.py: Add project_urls for PyPI (#1867)
+    * Support test with redis unstable docker (#1850)
+    * Connection examples (#1835)
+    * Documentation cleanup (#1841)
+- Release 4.1.0
+    * OCSP stapling support (#1820)
+    * Support for SELECT (#1825)
+    * Support for specifying error types with retry (#1817)
+    * Support for RESET command since Redis 6.2.0 (#1824)
+    * Support CLIENT TRACKING (#1612)
+    * Support WRITE in CLIENT PAUSE (#1549)
+    * JSON set_file and set_path support (#1818)
+    * Allow ssl_ca_path with rediss:// urls (#1814)
+    * Support for password-encrypted SSL private keys (#1782)
+    * Support SYNC and PSYNC (#1741)
+    * Retry on error exception and timeout fixes (#1821)
+    * Fixing read race condition during pubsub (#1737)
+    * Fixing exception in listen (#1823)
+    * Fixed MovedError, and stopped iterating through startup nodes
+      when slots are fully covered (#1819)
+    * Socket not closing after server disconnect (#1797)
+    * Single sourcing the package version (#1791)
+    * Ensure redis_connect_func is set on uds connection (#1794)
+    * SRTALGO - Skip for redis versions greater than 7.0.0 (#1831)
+    * Documentation updates (#1822)
+    * Add CI action to install package from repository commit hash
+      (#1781) (#1790)
+    * Fix link in lmove docstring (#1793)
+    * Disabling JSON.DEBUG tests (#1787)
+    * Migrated targeted nodes to kwargs in Cluster Mode (#1762)
+    * Added support for MONITOR in clusters (#1756)
+    * Adding ROLE Command (#1610)
+    * Integrate RedisBloom support (#1683)
+    * Adding RedisGraph support (#1556)
+    * Allow overriding connection class via keyword arguments
+      (#1752)
+    * Aggregation LOAD * support for RediSearch (#1735)
+    * Adding cluster, bloom, and graph docs (#1779)
+    * Add packaging to setup_requires, and use >= to play nice to
+      setup.py (fixes #1625) (#1780)
+    * Fixing the license link in the readme (#1778)
+    * Removing distutils from tests (#1773)
+    * Fix cluster ACL tests (#1774)
+    * Improved RedisCluster's reinitialize_steps and documentation
+      (#1765)
+    * Added black and isort (#1734)
+    * Link Documents for all module commands (#1711)
+    * Pyupgrade + flynt + f-strings (#1759)
+    * Remove unused aggregation subclasses in RediSearch (#1754)
+    * Adding RedisCluster client to support Redis Cluster Mode
+      (#1660)
+    * Support RediSearch FT.PROFILE command (#1727)
+    * Adding support for non-decodable commands (#1731)
+    * COMMAND GETKEYS support (#1738)
+    * RedisJSON 2.0.4 behaviour support (#1747)
+    * Removing deprecating distutils (PEP 632) (#1730)
+    * Updating PR template (#1745)
+    * Removing duplication of Script class (#1751)
+    * Splitting documentation for read the docs (#1743)
+    * Improve code coverage for aggregation tests (#1713)
+    * Fixing COMMAND GETKEYS tests (#1750)
+    * GitHub release improvements (#1684)
+- Release 4.0.2
+    * Restoring Sentinel commands to redis client (#1723)
+    * Better removal of hiredis warning (#1726)
+    * Adding links to redis documents in function calls (#1719)
+- Release 4.0.1
+    * Removing command on initial connections (#1722)
+    * Removing hiredis warning when not installed (#1721)
+- Release 4.0.0
+    * FT.EXPLAINCLI intentionally raising NotImplementedError
+    * Restoring ZRANGE desc for Redis < 6.2.0 (#1697)
+    * Response parsing occasionally fails to parse floats (#1692)
+    * Re-enabling read-the-docs (#1707)
+    * Call HSET after FT.CREATE to avoid keyspace scan (#1706)
+    * Unit tests fixes for compatibility (#1703)
+    * Improve documentation about Locks (#1701)
+    * Fixes to allow --redis-url to pass through all tests (#1700)
+    * Fix unit tests running against Redis 4.0.0 (#1699)
+    * Search alias test fix (#1695)
+    * Adding RediSearch/RedisJSON tests (#1691)
+    * Updating codecov rules (#1689)
+    * Tests to validate custom JSON decoders (#1681)
+    * Added breaking icon to release drafter (#1702)
+    * Removing dependency on six (#1676)
+    * Re-enable pipeline support for JSON and TimeSeries (#1674)
+    * Export Sentinel, and SSL like other classes (#1671)
+    * Restore zrange functionality for older versions of Redis
+      (#1670)
+    * Fixed garbage collection deadlock (#1578)
+    * Tests to validate built python packages (#1678)
+    * Sleep for flaky search test (#1680)
+    * Test function renames, to match standards (#1679)
+    * Docstring improvements for Redis class (#1675)
+    * Fix georadius tests (#1672)
+    * Improvements to JSON coverage (#1666)
+    * Add python_requires setuptools check for python > 3.6 (#1656)
+    * SMISMEMBER support (#1667)
+    * Exposing the module version in loaded_modules (#1648)
+    * RedisTimeSeries support (#1652)
+    * Support for json multipath ($) (#1663)
+    * Added boolean parsing to PEXPIRE and PEXPIREAT (#1665)
+    * Add python_requires setuptools check for python > 3.6 (#1656)
+    * Adding vulture for static analysis (#1655)
+    * Starting to clean the docs (#1657)
+    * Update README.md (#1654)
+    * Adding description format for package (#1651)
+    * Publish to pypi as releases are generated with the release
+      drafter (#1647)
+    * Restore actions to prs (#1653)
+    * Fixing the package to include commands (#1649)
+    * Re-enabling codecov as part of CI process (#1646)
+    * Adding support for redisearch (#1640) Thanks @chayim
++++ 157 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/python-redis/python-redis.changes
++++ and /work/SRC/openSUSE:Factory/.python-redis.new.1548/python-redis.changes

Old:
----
  account-defaults-redis.patch
  redis-3.5.3.tar.gz

New:
----
  redis-4.3.3.tar.gz
  tox.ini

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-redis.spec ++++++
--- /var/tmp/diff_new_pack.FnlGPW/_old  2022-06-17 21:22:53.414785650 +0200
+++ /var/tmp/diff_new_pack.FnlGPW/_new  2022-06-17 21:22:53.418785651 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-redis
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,27 +16,42 @@
 #
 
 
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%{?!python_module:%define python_module() python3-%{**}}
+%define skip_python2 1
 Name:           python-redis
-Version:        3.5.3
+Version:        4.3.3
 Release:        0
 Summary:        Python client for Redis key-value store
 License:        MIT
 Group:          Development/Languages/Python
-URL:            https://github.com/andymccurdy/redis-py
-Source:         
https://files.pythonhosted.org/packages/source/r/redis/redis-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM account-defaults-redis.patch gh#andymccurdy/redis-py#1499 
mc...@suse.com
-# changing unit tests to account for defaults in redis
-Patch0:         account-defaults-redis.patch
-BuildRequires:  %{python_module mock}
-BuildRequires:  %{python_module pytest >= 2.7.0}
+URL:            https://github.com/redis/redis-py
+Source0:        
https://files.pythonhosted.org/packages/source/r/redis/redis-%{version}.tar.gz
+Source1:        https://github.com/redis/redis-py/raw/v%{version}/tox.ini
+BuildRequires:  %{python_module Deprecated >= 1.2.3}
+BuildRequires:  %{python_module async-timeout >= 4.0.2}
+BuildRequires:  %{python_module base >= 3.6}
+BuildRequires:  %{python_module importlib-metadata >= 1.0 if %python-base < 
3.8}
+# requires mock.AsyncMock
+BuildRequires:  %{python_module mock if %python-base < 3.8}
+BuildRequires:  %{python_module packaging >= 20.4}
+BuildRequires:  %{python_module pytest-asyncio}
+BuildRequires:  %{python_module pytest-timeout}
+BuildRequires:  %{python_module pytest}
 BuildRequires:  %{python_module setuptools}
+BuildRequires:  %{python_module typing-extensions if %python-base < 3.8}
 BuildRequires:  fdupes
 BuildRequires:  psmisc
 BuildRequires:  python-rpm-macros
 BuildRequires:  redis
+Requires:       python-Deprecated >= 1.2.3
+Requires:       python-async-timeout >= 4.0.2
+Requires:       python-packaging >= 20.4
 Requires:       redis
-Recommends:     python-hiredis >= 0.1.3
+%if 0%{?python_version_nodots} < 38
+Requires:       python-importlib-metadata >= 1.0
+Requires:       python-typing-extensions
+%endif
+Recommends:     python-hiredis >= 1.0.0
 BuildArch:      noarch
 %python_subpackages
 
@@ -45,6 +60,8 @@
 
 %prep
 %autosetup -p1 -n redis-%{version}
+# tox.ini for pytest markers
+cp %{SOURCE1} .
 
 %build
 %python_build
@@ -54,15 +71,34 @@
 %python_expand %fdupes %{buildroot}%{$python_sitelib}
 
 %check
-%{_sbindir}/redis-server --port 6379 &
-%pytest
-
-killall redis-server
+# upstream's tox testsuite starts several servers in docker containers 
listening on different ports.
+# We just start two of them locally
+# master
+# https://github.com/redis/redis/pull/9920
+%{_sbindir}/redis-server --version | grep ' v=7\.' && 
redis7args="--enable-debug-command yes --enable-module-command yes"
+%{_sbindir}/redis-server --port 6379 --save "" $redis7args &
+victims="$!"
+trap "kill $victims || true" EXIT
+sleep 2
+# replica
+%{_sbindir}/redis-server --port 6380 --save "" --replicaof localhost 6379  &
+victims="$victims $!"
+trap "kill $victims || true" EXIT
+sleep 2
+# onlycluster: skip tests which require a full cluster
+# redismod: Not available (https://github.com/RedisLabsModules/redismod)
+# ssl: no stunnel with certs from docker container, fails at test collection
+#
+if [ $(getconf LONG_BIT) -ne 64 ]; then
+  # reference precision issues on 32-bit
+  donttest=" or test_geopos"
+fi
+%pytest -m 'not (onlycluster or redismod)' -k "not (dummyprefix $donttest)" 
--ignore tests/test_ssl.py
 
 %files %{python_files}
 %license LICENSE
-%doc CHANGES README.rst
+%doc README.md
 %{python_sitelib}/redis/
-%{python_sitelib}/redis-%{version}-py*.egg-info
+%{python_sitelib}/redis-%{version}*-info
 
 %changelog

++++++ redis-3.5.3.tar.gz -> redis-4.3.3.tar.gz ++++++
++++ 79636 lines of diff (skipped)

++++++ tox.ini ++++++
[pytest]
addopts = -s
markers =
    redismod: run only the redis module tests
    pipeline: pipeline tests
    onlycluster: marks tests to be run only with cluster mode redis
    onlynoncluster: marks tests to be run only with standalone redis
    ssl: marker for only the ssl tests
    asyncio: marker for async tests
    replica: replica tests
    experimental: run only experimental tests

[tox]
minversion = 3.2.0
requires = tox-docker
envlist = 
{standalone,cluster}-{plain,hiredis,ocsp}-{uvloop,asyncio}-{py36,py37,py38,py39,pypy3},linters,docs

[docker:master]
name = master
image = redisfab/redis-py:6.2.6-buster
ports =
    6379:6379/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',6379)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis6.2/master/redis.conf:/redis.conf

[docker:replica]
name = replica
image = redisfab/redis-py:6.2.6-buster
links =
    master:master
ports =
    6380:6380/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',6380)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis6.2/replica/redis.conf:/redis.conf

[docker:unstable]
name = unstable
image = redisfab/redis-py:unstable-bionic
ports =
    6378:6378/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',6378)) else False"
volumes =
    bind:rw:{toxinidir}/docker/unstable/redis.conf:/redis.conf

[docker:unstable_cluster]
name = unstable_cluster
image = redisfab/redis-py-cluster:unstable-bionic
ports =
    6372:6372/tcp
    6373:6373/tcp
    6374:6374/tcp
    6375:6375/tcp
    6376:6376/tcp
    6377:6377/tcp
healtcheck_cmd = python -c "import socket;print(True) if all([0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',port)) for port in 
range(6372,6377)]) else False"
volumes =
    bind:rw:{toxinidir}/docker/unstable_cluster/redis.conf:/redis.conf

[docker:sentinel_1]
name = sentinel_1
image = redisfab/redis-py-sentinel:6.2.6-buster
links =
    master:master
ports =
    26379:26379/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',26379)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis6.2/sentinel/sentinel_1.conf:/sentinel.conf

[docker:sentinel_2]
name = sentinel_2
image = redisfab/redis-py-sentinel:6.2.6-buster
links =
    master:master
ports =
    26380:26380/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',26380)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis6.2/sentinel/sentinel_2.conf:/sentinel.conf

[docker:sentinel_3]
name = sentinel_3
image = redisfab/redis-py-sentinel:6.2.6-buster
links =
    master:master
ports =
    26381:26381/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',26381)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis6.2/sentinel/sentinel_3.conf:/sentinel.conf

[docker:redismod]
name = redismod
image = redislabs/redismod:edge
ports =
    36379:6379/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',36379)) else False"

[docker:redis_cluster]
name = redis_cluster
image = redisfab/redis-py-cluster:6.2.6-buster
ports =
    16379:16379/tcp
    16380:16380/tcp
    16381:16381/tcp
    16382:16382/tcp
    16383:16383/tcp
    16384:16384/tcp
healtcheck_cmd = python -c "import socket;print(True) if all([0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',port)) for port in 
range(16379,16384)]) else False"
volumes =
    bind:rw:{toxinidir}/docker/cluster/redis.conf:/redis.conf

[docker:redismod_cluster]
name = redismod_cluster
image = redisfab/redis-py-modcluster:6.2.6
ports =
    46379:46379/tcp
    46380:46380/tcp
    46381:46381/tcp
    46382:46382/tcp
    46383:46383/tcp
    46384:46384/tcp
healtcheck_cmd = python -c "import socket;print(True) if all([0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',port)) for port in 
range(46379,46384)]) else False"
volumes =
    bind:rw:{toxinidir}/docker/redismod_cluster/redis.conf:/redis.conf

[docker:stunnel]
name = stunnel
image = redisfab/stunnel:latest
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',6666)) else False"
links =
    master:master
ports =
    6666:6666/tcp
volumes =
    bind:ro:{toxinidir}/docker/stunnel/conf:/etc/stunnel/conf.d
    bind:ro:{toxinidir}/docker/stunnel/keys:/etc/stunnel/keys

[docker:redis5_master]
name = redis5_master
image = redisfab/redis-py:5.0-buster
ports =
    6382:6382/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',6382)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis5/master/redis.conf:/redis.conf

[docker:redis5_replica]
name = redis5_replica
image = redisfab/redis-py:5.0-buster
links =
    redis5_master:redis5_master
ports =
    6383:6383/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',6383)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis5/replica/redis.conf:/redis.conf

[docker:redis5_sentinel_1]
name = redis5_sentinel_1
image = redisfab/redis-py-sentinel:5.0-buster
links =
    redis5_master:redis5_master
ports =
    26382:26382/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',26382)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis5/sentinel/sentinel_1.conf:/sentinel.conf

[docker:redis5_sentinel_2]
name = redis5_sentinel_2
image = redisfab/redis-py-sentinel:5.0-buster
links =
    redis5_master:redis5_master
ports =
    26383:26383/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',26383)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis5/sentinel/sentinel_2.conf:/sentinel.conf

[docker:redis5_sentinel_3]
name = redis5_sentinel_3
image = redisfab/redis-py-sentinel:5.0-buster
links =
    redis5_master:redis5_master
ports =
    26384:26384/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',26384)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis5/sentinel/sentinel_3.conf:/sentinel.conf

[docker:redis5_cluster]
name = redis5_cluster
image = redisfab/redis-py-cluster:5.0-buster
ports =
    16385:16385/tcp
    16386:16386/tcp
    16387:16387/tcp
    16388:16388/tcp
    16389:16389/tcp
    16390:16390/tcp
healtcheck_cmd = python -c "import socket;print(True) if all([0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',port)) for port in 
range(16385,16390)]) else False"
volumes =
    bind:rw:{toxinidir}/docker/cluster/redis.conf:/redis.conf

[docker:redis4_master]
name = redis4_master
image = redisfab/redis-py:4.0-buster
ports =
    6381:6381/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',6381)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis4/master/redis.conf:/redis.conf

[docker:redis4_sentinel_1]
name = redis4_sentinel_1
image = redisfab/redis-py-sentinel:4.0-buster
links =
    redis4_master:redis4_master
ports =
    26385:26385/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',26385)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis4/sentinel/sentinel_1.conf:/sentinel.conf

[docker:redis4_sentinel_2]
name = redis4_sentinel_2
image = redisfab/redis-py-sentinel:4.0-buster
links =
    redis4_master:redis4_master
ports =
    26386:26386/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',26386)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis4/sentinel/sentinel_2.conf:/sentinel.conf

[docker:redis4_sentinel_3]
name = redis4_sentinel_3
image = redisfab/redis-py-sentinel:4.0-buster
links =
    redis4_master:redis4_master
ports =
    26387:26387/tcp
healtcheck_cmd = python -c "import socket;print(True) if 0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',26387)) else False"
volumes =
    bind:rw:{toxinidir}/docker/redis4/sentinel/sentinel_3.conf:/sentinel.conf

[docker:redis4_cluster]
name = redis4_cluster
image = redisfab/redis-py-cluster:4.0-buster
ports =
    16391:16391/tcp
    16392:16392/tcp
    16393:16393/tcp
    16394:16394/tcp
    16395:16395/tcp
    16396:16396/tcp
healtcheck_cmd = python -c "import socket;print(True) if all([0 == 
socket.socket(socket.AF_INET, 
socket.SOCK_STREAM).connect_ex(('127.0.0.1',port)) for port in 
range(16391,16396)]) else False"
volumes =
    bind:rw:{toxinidir}/docker/cluster/redis.conf:/redis.conf

[isort]
profile = black
multi_line_output = 3

[testenv]
deps =
    -r {toxinidir}/requirements.txt
    -r {toxinidir}/dev_requirements.txt
docker =
    unstable
    unstable_cluster
    master
    replica
    sentinel_1
    sentinel_2
    sentinel_3
    redis_cluster
    redismod
    redismod_cluster
    stunnel
extras =
    hiredis: hiredis
    ocsp: cryptography, pyopenssl, requests
setenv =
    CLUSTER_URL = "redis://localhost:16379/0"
    UNSTABLE_CLUSTER_URL = "redis://localhost:6372/0"
commands =
    standalone: pytest --cov=./ --cov-report=xml:coverage_redis.xml -W always 
-m 'not onlycluster' {posargs}
    standalone-uvloop: pytest --cov=./ --cov-report=xml:coverage_redis.xml -W 
always -m 'not onlycluster' --uvloop {posargs}
    cluster: pytest --cov=./ --cov-report=xml:coverage_cluster.xml -W always -m 
'not onlynoncluster and not redismod' --redis-url={env:CLUSTER_URL:} 
--redis-unstable-url={env:UNSTABLE_CLUSTER_URL:} {posargs}
    cluster-uvloop: pytest --cov=./ --cov-report=xml:coverage_cluster.xml -W 
always -m 'not onlynoncluster and not redismod' --redis-url={env:CLUSTER_URL:} 
--redis-unstable-url={env:UNSTABLE_CLUSTER_URL:} --uvloop {posargs}

[testenv:redis5]
deps =
    -r {toxinidir}/requirements.txt
    -r {toxinidir}/dev_requirements.txt
docker =
    redis5_master
    redis5_replica
    redis5_sentinel_1
    redis5_sentinel_2
    redis5_sentinel_3
    redis5_cluster
extras =
    hiredis: hiredis
    cryptography: cryptography, requests
setenv =
    CLUSTER_URL = "redis://localhost:16385/0"
commands =
    standalone: pytest --cov=./ --cov-report=xml:coverage_redis.xml -W always 
-m 'not onlycluster and not redismod' {posargs}
    cluster: pytest --cov=./ --cov-report=xml:coverage_cluster.xml -W always -m 
'not onlynoncluster and not redismod' --redis-url={env:CLUSTER_URL:} {posargs}

[testenv:redis4]
deps =
    -r {toxinidir}/requirements.txt
    -r {toxinidir}/dev_requirements.txt
docker =
    redis4_master
    redis4_sentinel_1
    redis4_sentinel_2
    redis4_sentinel_3
    redis4_cluster
extras =
    hiredis: hiredis
    cryptography: cryptography, requests
setenv =
    CLUSTER_URL = "redis://localhost:16391/0"
commands =
    standalone: pytest --cov=./ --cov-report=xml:coverage_redis.xml -W always 
-m 'not onlycluster and not redismod' {posargs}
    cluster: pytest --cov=./ --cov-report=xml:coverage_cluster.xml -W always -m 
'not onlynoncluster and not redismod' --redis-url={env:CLUSTER_URL:} {posargs}

[testenv:devenv]
skipsdist = true
skip_install = true
deps = -r {toxinidir}/dev_requirements.txt
docker = {[testenv]docker}

[testenv:linters]
deps_files = dev_requirements.txt
docker =
commands =
    flake8
    black --target-version py36 --check --diff .
    isort --check-only --diff .
    vulture redis whitelist.py --min-confidence 80
    flynt --fail-on-change --dry-run .
skipsdist = true
skip_install = true

[testenv:docs]
deps = -r docs/requirements.txt
docker =
changedir = {toxinidir}/docs
allowlist_externals = make
commands = make html

[flake8]
max-line-length = 88
exclude =
    *.egg-info,
    *.pyc,
    .git,
    .tox,
    .venv*,
    build,
    docs/*,
    dist,
    docker,
    venv*,
    .venv*,
    whitelist.py
ignore =
    F405
    W503
    E203
    E126

Reply via email to