22import random
33import time
44from typing import Callable , TypeVar
5+ from unittest import mock
56from unittest .mock import Mock
67from urllib .parse import urlparse
78
89import pytest
910import redis
1011from packaging .version import Version
1112from redis .backoff import NoBackoff
12- from redis .connection import parse_url
13+ from redis .connection import Connection , parse_url
1314from redis .exceptions import RedisClusterException
1415from redis .retry import Retry
1516
@@ -39,7 +40,6 @@ def __init__(
3940 help = None ,
4041 metavar = None ,
4142 ):
42-
4343 _option_strings = []
4444 for option_string in option_strings :
4545 _option_strings .append (option_string )
@@ -72,7 +72,6 @@ def format_usage(self):
7272
7373
7474def pytest_addoption (parser ):
75-
7675 parser .addoption (
7776 "--redis-url" ,
7877 default = default_redis_url ,
@@ -354,23 +353,23 @@ def sslclient(request):
354353
355354
356355def _gen_cluster_mock_resp (r , response ):
357- connection = Mock ()
356+ connection = Mock (spec = Connection )
358357 connection .retry = Retry (NoBackoff (), 0 )
359358 connection .read_response .return_value = response
360- r . connection = connection
361- return r
359+ with mock . patch . object ( r , " connection" , connection ):
360+ yield r
362361
363362
364363@pytest .fixture ()
365364def mock_cluster_resp_ok (request , ** kwargs ):
366365 r = _get_client (redis .Redis , request , ** kwargs )
367- return _gen_cluster_mock_resp (r , "OK" )
366+ yield from _gen_cluster_mock_resp (r , "OK" )
368367
369368
370369@pytest .fixture ()
371370def mock_cluster_resp_int (request , ** kwargs ):
372371 r = _get_client (redis .Redis , request , ** kwargs )
373- return _gen_cluster_mock_resp (r , 2 )
372+ yield from _gen_cluster_mock_resp (r , 2 )
374373
375374
376375@pytest .fixture ()
@@ -384,7 +383,7 @@ def mock_cluster_resp_info(request, **kwargs):
384383 "cluster_my_epoch:2\r \n cluster_stats_messages_sent:170262\r \n "
385384 "cluster_stats_messages_received:105653\r \n "
386385 )
387- return _gen_cluster_mock_resp (r , response )
386+ yield from _gen_cluster_mock_resp (r , response )
388387
389388
390389@pytest .fixture ()
@@ -408,7 +407,7 @@ def mock_cluster_resp_nodes(request, **kwargs):
408407 "fbb23ed8cfa23f17eaf27ff7d0c410492a1093d6 172.17.0.7:7002 "
409408 "master,fail - 1447829446956 1447829444948 1 disconnected\n "
410409 )
411- return _gen_cluster_mock_resp (r , response )
410+ yield from _gen_cluster_mock_resp (r , response )
412411
413412
414413@pytest .fixture ()
@@ -419,7 +418,7 @@ def mock_cluster_resp_slaves(request, **kwargs):
419418 "slave 19efe5a631f3296fdf21a5441680f893e8cc96ec 0 "
420419 "1447836789290 3 connected']"
421420 )
422- return _gen_cluster_mock_resp (r , response )
421+ yield from _gen_cluster_mock_resp (r , response )
423422
424423
425424@pytest .fixture (scope = "session" )
0 commit comments