14
14
from unittest import mock
15
15
16
16
import pymemcache
17
+ from packaging import version as get_package_version
18
+ from pymemcache import __version__ as pymemcache_package_version
17
19
from pymemcache .exceptions import (
18
20
MemcacheClientError ,
19
21
MemcacheIllegalInputError ,
33
35
TEST_HOST = "localhost"
34
36
TEST_PORT = 117711
35
37
38
+ pymemcache_version = get_package_version .parse (pymemcache_package_version )
39
+ pymemcache_version_lt_2 = pymemcache_version < get_package_version .parse (
40
+ "2.0.0"
41
+ )
42
+ pymemcache_version_gt_341 = pymemcache_version > get_package_version .parse (
43
+ "3.4.1"
44
+ )
45
+
36
46
37
47
class PymemcacheClientTestCase (
38
48
TestBase
@@ -126,11 +136,13 @@ def test_set_multi_success(self):
126
136
client = self .make_client ([b"STORED\r \n " ])
127
137
# Alias for set_many, a convienance function that calls set for every key
128
138
result = client .set_multi ({b"key" : b"value" }, noreply = False )
129
- self .assertTrue (result )
130
-
131
139
spans = self .memory_exporter .get_finished_spans ()
132
-
133
- self .check_spans (spans , 2 , ["set key" , "set_multi key" ])
140
+ if pymemcache_version_lt_2 :
141
+ self .assertTrue (result )
142
+ self .check_spans (spans , 2 , ["set key" , "set_multi key" ])
143
+ else :
144
+ assert len (result ) == 0
145
+ self .check_spans (spans , 1 , ["set_multi key" ])
134
146
135
147
def test_delete_not_found (self ):
136
148
client = self .make_client ([b"NOT_FOUND\r \n " ])
@@ -191,19 +203,26 @@ def test_delete_many_found(self):
191
203
192
204
spans = self .memory_exporter .get_finished_spans ()
193
205
194
- self .check_spans (
195
- spans , 3 , ["add key" , "delete key" , "delete_many key" ]
196
- )
206
+ if pymemcache_version_lt_2 :
207
+ self .check_spans (
208
+ spans , 3 , ["add key" , "delete key" , "delete_many key" ]
209
+ )
210
+ else :
211
+ self .check_spans (spans , 2 , ["add key" , "delete_many key" ])
197
212
198
213
def test_set_many_success (self ):
199
214
client = self .make_client ([b"STORED\r \n " ])
200
215
# a convienance function that calls set for every key
201
216
result = client .set_many ({b"key" : b"value" }, noreply = False )
202
- self .assertTrue (result )
203
217
204
218
spans = self .memory_exporter .get_finished_spans ()
205
219
206
- self .check_spans (spans , 2 , ["set key" , "set_many key" ])
220
+ if pymemcache_version_lt_2 :
221
+ self .assertTrue (result )
222
+ self .check_spans (spans , 2 , ["set key" , "set_many key" ])
223
+ else :
224
+ assert len (result ) == 0
225
+ self .check_spans (spans , 1 , ["set_many key" ])
207
226
208
227
def test_set_get (self ):
209
228
client = self .make_client (
@@ -243,7 +262,7 @@ def test_prepend_stored(self):
243
262
244
263
def test_cas_stored (self ):
245
264
client = self .make_client ([b"STORED\r \n " ])
246
- result = client .cas (b"key" , b"value" , b"cas " , noreply = False )
265
+ result = client .cas (b"key" , b"value" , b"1 " , noreply = False )
247
266
self .assertTrue (result )
248
267
249
268
spans = self .memory_exporter .get_finished_spans ()
@@ -252,7 +271,7 @@ def test_cas_stored(self):
252
271
253
272
def test_cas_exists (self ):
254
273
client = self .make_client ([b"EXISTS\r \n " ])
255
- result = client .cas (b"key" , b"value" , b"cas " , noreply = False )
274
+ result = client .cas (b"key" , b"value" , b"1 " , noreply = False )
256
275
assert result is False
257
276
258
277
spans = self .memory_exporter .get_finished_spans ()
@@ -261,7 +280,7 @@ def test_cas_exists(self):
261
280
262
281
def test_cas_not_found (self ):
263
282
client = self .make_client ([b"NOT_FOUND\r \n " ])
264
- result = client .cas (b"key" , b"value" , b"cas " , noreply = False )
283
+ result = client .cas (b"key" , b"value" , b"1 " , noreply = False )
265
284
assert result is None
266
285
267
286
spans = self .memory_exporter .get_finished_spans ()
@@ -445,7 +464,11 @@ def test_version_success(self):
445
464
def test_stats (self ):
446
465
client = self .make_client ([b"STAT fake_stats 1\r \n " , b"END\r \n " ])
447
466
result = client .stats ()
448
- assert client .sock .send_bufs == [b"stats \r \n " ]
467
+
468
+ if pymemcache_version_gt_341 :
469
+ assert client .sock .send_bufs == [b"stats\r \n " ]
470
+ else :
471
+ assert client .sock .send_bufs == [b"stats \r \n " ]
449
472
assert result == {b"fake_stats" : 1 }
450
473
451
474
spans = self .memory_exporter .get_finished_spans ()
@@ -544,5 +567,4 @@ def test_delete_many_found(self):
544
567
self .assertTrue (result )
545
568
546
569
spans = self .memory_exporter .get_finished_spans ()
547
-
548
570
self .check_spans (spans , 2 , ["add key" , "delete key" ])
0 commit comments