11from collections .abc import Iterable
2- from unittest .mock import Mock , call , patch
32
43import pytest
54from pytest_django .fixtures import SettingsWrapper
@@ -24,6 +23,7 @@ def test_close_client_disconnect_default(
2423 self , cache_client : DefaultClient , mocker : MockerFixture
2524 ):
2625 mock = mocker .patch .object (cache_client .connection_factory , "disconnect" )
26+
2727 cache_client .close ()
2828 assert not mock .called
2929
@@ -33,8 +33,9 @@ def test_close_disconnect_settings(
3333 settings : SettingsWrapper ,
3434 mocker : MockerFixture ,
3535 ):
36- settings .DJANGO_VALKEY_CLOSE_CONNECTION = True
3736 mock = mocker .patch .object (cache_client .connection_factory , "disconnect" )
37+
38+ settings .DJANGO_VALKEY_CLOSE_CONNECTION = True
3839 cache_client .close ()
3940 assert mock .called
4041
@@ -44,17 +45,21 @@ def test_close_disconnect_settings_cache(
4445 mocker : MockerFixture ,
4546 settings : SettingsWrapper ,
4647 ):
48+ mock = mocker .patch .object (cache_client .connection_factory , "disconnect" )
49+
4750 settings .CACHES [DEFAULT_CACHE_ALIAS ]["OPTIONS" ]["CLOSE_CONNECTION" ] = True
4851 cache_client .set ("TestClientClose" , 0 )
49- mock = mocker . patch . object ( cache_client . connection_factory , "disconnect" )
52+
5053 cache_client .close ()
5154 assert mock .called
5255
5356 def test_close_disconnect_client_options (
5457 self , cache_client : DefaultClient , mocker : MockerFixture
5558 ):
56- cache_client ._options ["CLOSE_CONNECTION" ] = True
5759 mock = mocker .patch .object (cache_client .connection_factory , "disconnect" )
60+
61+ cache_client ._options ["CLOSE_CONNECTION" ] = True
62+
5863 cache_client .close ()
5964 assert mock .called
6065
@@ -63,26 +68,29 @@ def test_close_disconnect_client_options(
6368 not isinstance (default_cache .client , DefaultClient ), reason = "shard only test"
6469)
6570class TestDefaultClient :
66- @ patch ( "django_valkey.base_client.ClientCommands.get_client" )
67- @ patch ( "django_valkey.base_client.BaseClient.__init__" , return_value = None )
68- def test_delete_pattern_calls_get_client_given_no_client (
69- self , init_mock , get_client_mock
70- ):
71+ def test_delete_pattern_calls_get_client_given_no_client ( self , mocker ):
72+ get_client_mock = mocker . patch (
73+ "django_valkey.base_client.ClientCommands.get_client"
74+ )
75+ mocker . patch ( "django_valkey.base_client.BaseClient.__init__" , return_value = None )
7176 client = DefaultClient ()
72- client ._backend = Mock ()
77+ client ._backend = mocker . Mock ()
7378 client ._backend .key_prefix = ""
7479
7580 client .delete_pattern (pattern = "foo*" )
7681 get_client_mock .assert_called_once_with (write = True , tried = None )
7782
78- @patch ("django_valkey.base_client.BaseClient.make_pattern" )
79- @patch ("django_valkey.base_client.ClientCommands.get_client" , return_value = Mock ())
80- @patch ("django_valkey.base_client.BaseClient.__init__" , return_value = None )
81- def test_delete_pattern_calls_make_pattern (
82- self , init_mock , get_client_mock , make_pattern_mock
83- ):
83+ def test_delete_pattern_calls_make_pattern (self , mocker ):
84+ make_pattern_mock = mocker .patch (
85+ "django_valkey.base_client.BaseClient.make_pattern"
86+ )
87+ get_client_mock = mocker .patch (
88+ "django_valkey.base_client.ClientCommands.get_client" ,
89+ return_value = mocker .Mock (),
90+ )
91+ mocker .patch ("django_valkey.base_client.BaseClient.__init__" , return_value = None )
8492 client = DefaultClient ()
85- client ._backend = Mock ()
93+ client ._backend = mocker . Mock ()
8694 client ._backend .key_prefix = ""
8795 get_client_mock .return_value .scan_iter .return_value = []
8896
@@ -91,14 +99,17 @@ def test_delete_pattern_calls_make_pattern(
9199 kwargs = {"version" : None , "prefix" : None }
92100 make_pattern_mock .assert_called_once_with ("foo*" , ** kwargs )
93101
94- @patch ("django_valkey.base_client.BaseClient.make_pattern" )
95- @patch ("django_valkey.base_client.ClientCommands.get_client" , return_value = Mock ())
96- @patch ("django_valkey.base_client.BaseClient.__init__" , return_value = None )
97- def test_delete_pattern_calls_scan_iter_with_count_if_itersize_given (
98- self , init_mock , get_client_mock , make_pattern_mock
99- ):
102+ def test_delete_pattern_calls_scan_iter_with_count_if_itersize_given (self , mocker ):
103+ mocker .patch ("django_valkey.base_client.BaseClient.__init__" , return_value = None )
104+ get_client_mock = mocker .patch (
105+ "django_valkey.base_client.ClientCommands.get_client" ,
106+ return_value = mocker .Mock (),
107+ )
108+ make_pattern_mock = mocker .patch (
109+ "django_valkey.base_client.BaseClient.make_pattern"
110+ )
100111 client = DefaultClient ()
101- client ._backend = Mock ()
112+ client ._backend = mocker . Mock ()
102113 client ._backend .key_prefix = ""
103114 get_client_mock .return_value .scan_iter .return_value = []
104115
@@ -108,25 +119,26 @@ def test_delete_pattern_calls_scan_iter_with_count_if_itersize_given(
108119 count = 90210 , match = make_pattern_mock .return_value
109120 )
110121
111- @patch ("django_valkey.base_client.BaseClient.make_pattern" )
112- @patch ("django_valkey.base_client.ClientCommands.get_client" , return_value = Mock ())
113- @patch ("django_valkey.base_client.BaseClient.__init__" , return_value = None )
114- def test_delete_pattern_calls_pipeline_delete_and_execute (
115- self , init_mock , get_client_mock , make_pattern_mock
116- ):
122+ def test_delete_pattern_calls_pipeline_delete_and_execute (self , mocker ):
123+ mocker .patch ("django_valkey.base_client.BaseClient.__init__" , return_value = None )
124+ get_client_mock = mocker .patch (
125+ "django_valkey.base_client.ClientCommands.get_client" ,
126+ return_value = mocker .Mock (),
127+ )
128+ mocker .patch ("django_valkey.base_client.BaseClient.make_pattern" )
117129 client = DefaultClient ()
118- client ._backend = Mock ()
130+ client ._backend = mocker . Mock ()
119131 client ._backend .key_prefix = ""
120132 get_client_mock .return_value .scan_iter .return_value = [":1:foo" , ":1:foo-a" ]
121- get_client_mock .return_value .pipeline .return_value = Mock ()
122- get_client_mock .return_value .pipeline .return_value .delete = Mock ()
123- get_client_mock .return_value .pipeline .return_value .execute = Mock ()
133+ get_client_mock .return_value .pipeline .return_value = mocker . Mock ()
134+ get_client_mock .return_value .pipeline .return_value .delete = mocker . Mock ()
135+ get_client_mock .return_value .pipeline .return_value .execute = mocker . Mock ()
124136
125137 client .delete_pattern (pattern = "foo*" )
126138
127139 assert get_client_mock .return_value .pipeline .return_value .delete .call_count == 2
128140 get_client_mock .return_value .pipeline .return_value .delete .assert_has_calls (
129- [call (":1:foo" ), call (":1:foo-a" )]
141+ [mocker . call (":1:foo" ), mocker . call (":1:foo-a" )]
130142 )
131143 get_client_mock .return_value .pipeline .return_value .execute .assert_called_once ()
132144
@@ -158,6 +170,7 @@ def shard_cache(self):
158170 @pytest .fixture
159171 def connection (self , mocker ):
160172 connection = mocker .Mock ()
173+
161174 for m in self .CLIENT_METHODS_FOR_MOCK :
162175 setattr (connection , m , mocker .Mock (spec_set = ()))
163176
@@ -173,16 +186,17 @@ def connection(self, mocker):
173186
174187 yield connection
175188
176- @patch ("django_valkey.base_client.BaseClient.make_pattern" )
177- @patch ("django_valkey.client.sharded.ShardClient.__init__" , return_value = None )
178189 def test_delete_pattern_calls_scan_iter_with_count_if_itersize_given (
179- self ,
180- init_mock ,
181- make_pattern_mock ,
182- connection ,
190+ self , connection , mocker
183191 ):
192+ mocker .patch (
193+ "django_valkey.client.sharded.ShardClient.__init__" , return_value = None
194+ )
195+ make_pattern_mock = mocker .patch (
196+ "django_valkey.base_client.BaseClient.make_pattern"
197+ )
184198 client = ShardClient ()
185- client ._backend = Mock ()
199+ client ._backend = mocker . Mock ()
186200 client ._backend .key_prefix = ""
187201
188202 client ._server_dict = {"test" : connection }
@@ -193,13 +207,15 @@ def test_delete_pattern_calls_scan_iter_with_count_if_itersize_given(
193207 count = 10 , match = make_pattern_mock .return_value
194208 )
195209
196- @patch ("tests.test_client.ShardClient.make_pattern" )
197- @patch ("tests.test_client.ShardClient.__init__" , return_value = None )
198- def test_delete_pattern_calls_scan_iter (
199- self , init_mock , make_pattern_mock , connection
200- ):
210+ def test_delete_pattern_calls_scan_iter (self , connection , mocker ):
211+ mocker .patch (
212+ "django_valkey.client.sharded.ShardClient.__init__" , return_value = None
213+ )
214+ make_pattern_mock = mocker .patch (
215+ "django_valkey.base_client.BaseClient.make_pattern"
216+ )
201217 client = ShardClient ()
202- client ._backend = Mock ()
218+ client ._backend = mocker . Mock ()
203219 client ._backend .key_prefix = ""
204220 client ._server_dict = {"test" : connection }
205221
@@ -209,15 +225,17 @@ def test_delete_pattern_calls_scan_iter(
209225 match = make_pattern_mock .return_value
210226 )
211227
212- @patch ("tests.test_client.ShardClient.make_pattern" )
213- @patch ("tests.test_client.ShardClient.__init__" , return_value = None )
214228 def test_delete_pattern_calls_delete_for_given_keys (
215- self , init_mock , make_pattern_mock , connection , cache
229+ self , connection , cache , mocker
216230 ):
231+ mocker .patch (
232+ "django_valkey.client.sharded.ShardClient.__init__" , return_value = None
233+ )
234+ mocker .patch ("django_valkey.base_client.BaseClient.make_pattern" )
217235 client = ShardClient ()
218- client ._backend = Mock ()
236+ client ._backend = mocker . Mock ()
219237 client ._backend .key_prefix = ""
220- connection .scan_iter .return_value = [Mock (), Mock ()]
238+ connection .scan_iter .return_value = [mocker . Mock (), mocker . Mock ()]
221239 connection .delete .return_value = 0
222240 client ._server_dict = {"test" : connection }
223241
0 commit comments