1
1
from collections .abc import Iterable
2
- from unittest .mock import Mock , call , patch
3
2
4
3
import pytest
5
4
from pytest_django .fixtures import SettingsWrapper
@@ -24,6 +23,7 @@ def test_close_client_disconnect_default(
24
23
self , cache_client : DefaultClient , mocker : MockerFixture
25
24
):
26
25
mock = mocker .patch .object (cache_client .connection_factory , "disconnect" )
26
+
27
27
cache_client .close ()
28
28
assert not mock .called
29
29
@@ -33,8 +33,9 @@ def test_close_disconnect_settings(
33
33
settings : SettingsWrapper ,
34
34
mocker : MockerFixture ,
35
35
):
36
- settings .DJANGO_VALKEY_CLOSE_CONNECTION = True
37
36
mock = mocker .patch .object (cache_client .connection_factory , "disconnect" )
37
+
38
+ settings .DJANGO_VALKEY_CLOSE_CONNECTION = True
38
39
cache_client .close ()
39
40
assert mock .called
40
41
@@ -44,17 +45,21 @@ def test_close_disconnect_settings_cache(
44
45
mocker : MockerFixture ,
45
46
settings : SettingsWrapper ,
46
47
):
48
+ mock = mocker .patch .object (cache_client .connection_factory , "disconnect" )
49
+
47
50
settings .CACHES [DEFAULT_CACHE_ALIAS ]["OPTIONS" ]["CLOSE_CONNECTION" ] = True
48
51
cache_client .set ("TestClientClose" , 0 )
49
- mock = mocker . patch . object ( cache_client . connection_factory , "disconnect" )
52
+
50
53
cache_client .close ()
51
54
assert mock .called
52
55
53
56
def test_close_disconnect_client_options (
54
57
self , cache_client : DefaultClient , mocker : MockerFixture
55
58
):
56
- cache_client ._options ["CLOSE_CONNECTION" ] = True
57
59
mock = mocker .patch .object (cache_client .connection_factory , "disconnect" )
60
+
61
+ cache_client ._options ["CLOSE_CONNECTION" ] = True
62
+
58
63
cache_client .close ()
59
64
assert mock .called
60
65
@@ -63,26 +68,29 @@ def test_close_disconnect_client_options(
63
68
not isinstance (default_cache .client , DefaultClient ), reason = "shard only test"
64
69
)
65
70
class 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 )
71
76
client = DefaultClient ()
72
- client ._backend = Mock ()
77
+ client ._backend = mocker . Mock ()
73
78
client ._backend .key_prefix = ""
74
79
75
80
client .delete_pattern (pattern = "foo*" )
76
81
get_client_mock .assert_called_once_with (write = True , tried = None )
77
82
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 )
84
92
client = DefaultClient ()
85
- client ._backend = Mock ()
93
+ client ._backend = mocker . Mock ()
86
94
client ._backend .key_prefix = ""
87
95
get_client_mock .return_value .scan_iter .return_value = []
88
96
@@ -91,14 +99,17 @@ def test_delete_pattern_calls_make_pattern(
91
99
kwargs = {"version" : None , "prefix" : None }
92
100
make_pattern_mock .assert_called_once_with ("foo*" , ** kwargs )
93
101
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
+ )
100
111
client = DefaultClient ()
101
- client ._backend = Mock ()
112
+ client ._backend = mocker . Mock ()
102
113
client ._backend .key_prefix = ""
103
114
get_client_mock .return_value .scan_iter .return_value = []
104
115
@@ -108,25 +119,26 @@ def test_delete_pattern_calls_scan_iter_with_count_if_itersize_given(
108
119
count = 90210 , match = make_pattern_mock .return_value
109
120
)
110
121
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" )
117
129
client = DefaultClient ()
118
- client ._backend = Mock ()
130
+ client ._backend = mocker . Mock ()
119
131
client ._backend .key_prefix = ""
120
132
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 ()
124
136
125
137
client .delete_pattern (pattern = "foo*" )
126
138
127
139
assert get_client_mock .return_value .pipeline .return_value .delete .call_count == 2
128
140
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" )]
130
142
)
131
143
get_client_mock .return_value .pipeline .return_value .execute .assert_called_once ()
132
144
@@ -158,6 +170,7 @@ def shard_cache(self):
158
170
@pytest .fixture
159
171
def connection (self , mocker ):
160
172
connection = mocker .Mock ()
173
+
161
174
for m in self .CLIENT_METHODS_FOR_MOCK :
162
175
setattr (connection , m , mocker .Mock (spec_set = ()))
163
176
@@ -173,16 +186,17 @@ def connection(self, mocker):
173
186
174
187
yield connection
175
188
176
- @patch ("django_valkey.base_client.BaseClient.make_pattern" )
177
- @patch ("django_valkey.client.sharded.ShardClient.__init__" , return_value = None )
178
189
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
183
191
):
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
+ )
184
198
client = ShardClient ()
185
- client ._backend = Mock ()
199
+ client ._backend = mocker . Mock ()
186
200
client ._backend .key_prefix = ""
187
201
188
202
client ._server_dict = {"test" : connection }
@@ -193,13 +207,15 @@ def test_delete_pattern_calls_scan_iter_with_count_if_itersize_given(
193
207
count = 10 , match = make_pattern_mock .return_value
194
208
)
195
209
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
+ )
201
217
client = ShardClient ()
202
- client ._backend = Mock ()
218
+ client ._backend = mocker . Mock ()
203
219
client ._backend .key_prefix = ""
204
220
client ._server_dict = {"test" : connection }
205
221
@@ -209,15 +225,17 @@ def test_delete_pattern_calls_scan_iter(
209
225
match = make_pattern_mock .return_value
210
226
)
211
227
212
- @patch ("tests.test_client.ShardClient.make_pattern" )
213
- @patch ("tests.test_client.ShardClient.__init__" , return_value = None )
214
228
def test_delete_pattern_calls_delete_for_given_keys (
215
- self , init_mock , make_pattern_mock , connection , cache
229
+ self , connection , cache , mocker
216
230
):
231
+ mocker .patch (
232
+ "django_valkey.client.sharded.ShardClient.__init__" , return_value = None
233
+ )
234
+ mocker .patch ("django_valkey.base_client.BaseClient.make_pattern" )
217
235
client = ShardClient ()
218
- client ._backend = Mock ()
236
+ client ._backend = mocker . Mock ()
219
237
client ._backend .key_prefix = ""
220
- connection .scan_iter .return_value = [Mock (), Mock ()]
238
+ connection .scan_iter .return_value = [mocker . Mock (), mocker . Mock ()]
221
239
connection .delete .return_value = 0
222
240
client ._server_dict = {"test" : connection }
223
241
0 commit comments