Skip to content

Commit d78b85e

Browse files
committed
Unpatch mocked client after use
1 parent e1b895a commit d78b85e

File tree

2 files changed

+24
-20
lines changed

2 files changed

+24
-20
lines changed

tests/conftest.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
import random
33
import time
44
from typing import Callable, TypeVar
5+
from unittest import mock
56
from unittest.mock import Mock
67
from urllib.parse import urlparse
78

89
import pytest
910
import redis
1011
from packaging.version import Version
1112
from redis.backoff import NoBackoff
12-
from redis.connection import parse_url
13+
from redis.connection import Connection, parse_url
1314
from redis.exceptions import RedisClusterException
1415
from 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

7474
def pytest_addoption(parser):
75-
7675
parser.addoption(
7776
"--redis-url",
7877
default=default_redis_url,
@@ -354,23 +353,23 @@ def sslclient(request):
354353

355354

356355
def _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()
365364
def 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()
371370
def 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\ncluster_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")

tests/test_asyncio/conftest.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from packaging.version import Version
99
from redis._parsers import _AsyncHiredisParser, _AsyncRESP2Parser
1010
from redis.asyncio.client import Monitor
11-
from redis.asyncio.connection import parse_url
11+
from redis.asyncio.connection import Connection, parse_url
1212
from redis.asyncio.retry import Retry
1313
from redis.backoff import NoBackoff
1414
from redis.utils import HIREDIS_AVAILABLE
@@ -138,23 +138,25 @@ async def decoded_r(create_redis):
138138

139139

140140
def _gen_cluster_mock_resp(r, response):
141-
connection = mock.AsyncMock()
141+
connection = mock.AsyncMock(spec=Connection)
142142
connection.retry = Retry(NoBackoff(), 0)
143143
connection.read_response.return_value = response
144-
r.connection = connection
145-
return r
144+
with mock.patch.object(r, "connection", connection):
145+
yield r
146146

147147

148148
@pytest_asyncio.fixture()
149149
async def mock_cluster_resp_ok(create_redis, **kwargs):
150150
r = await create_redis(**kwargs)
151-
return _gen_cluster_mock_resp(r, "OK")
151+
for mocked in _gen_cluster_mock_resp(r, "OK"):
152+
yield mocked
152153

153154

154155
@pytest_asyncio.fixture()
155156
async def mock_cluster_resp_int(create_redis, **kwargs):
156157
r = await create_redis(**kwargs)
157-
return _gen_cluster_mock_resp(r, 2)
158+
for mocked in _gen_cluster_mock_resp(r, 2):
159+
yield mocked
158160

159161

160162
@pytest_asyncio.fixture()
@@ -168,7 +170,8 @@ async def mock_cluster_resp_info(create_redis, **kwargs):
168170
"cluster_my_epoch:2\r\ncluster_stats_messages_sent:170262\r\n"
169171
"cluster_stats_messages_received:105653\r\n"
170172
)
171-
return _gen_cluster_mock_resp(r, response)
173+
for mocked in _gen_cluster_mock_resp(r, response):
174+
yield mocked
172175

173176

174177
@pytest_asyncio.fixture()
@@ -192,7 +195,8 @@ async def mock_cluster_resp_nodes(create_redis, **kwargs):
192195
"fbb23ed8cfa23f17eaf27ff7d0c410492a1093d6 172.17.0.7:7002 "
193196
"master,fail - 1447829446956 1447829444948 1 disconnected\n"
194197
)
195-
return _gen_cluster_mock_resp(r, response)
198+
for mocked in _gen_cluster_mock_resp(r, response):
199+
yield mocked
196200

197201

198202
@pytest_asyncio.fixture()
@@ -203,7 +207,8 @@ async def mock_cluster_resp_slaves(create_redis, **kwargs):
203207
"slave 19efe5a631f3296fdf21a5441680f893e8cc96ec 0 "
204208
"1447836789290 3 connected']"
205209
)
206-
return _gen_cluster_mock_resp(r, response)
210+
for mocked in _gen_cluster_mock_resp(r, response):
211+
yield mocked
207212

208213

209214
async def wait_for_command(

0 commit comments

Comments
 (0)