1414from unittest import mock
1515
1616import pymemcache
17+ from packaging import version as get_package_version
18+ from pymemcache import __version__ as pymemcache_package_version
1719from pymemcache .exceptions import (
1820 MemcacheClientError ,
1921 MemcacheIllegalInputError ,
3335TEST_HOST = "localhost"
3436TEST_PORT = 117711
3537
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+
3646
3747class PymemcacheClientTestCase (
3848 TestBase
@@ -126,11 +136,13 @@ def test_set_multi_success(self):
126136 client = self .make_client ([b"STORED\r \n " ])
127137 # Alias for set_many, a convienance function that calls set for every key
128138 result = client .set_multi ({b"key" : b"value" }, noreply = False )
129- self .assertTrue (result )
130-
131139 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" ])
134146
135147 def test_delete_not_found (self ):
136148 client = self .make_client ([b"NOT_FOUND\r \n " ])
@@ -191,19 +203,26 @@ def test_delete_many_found(self):
191203
192204 spans = self .memory_exporter .get_finished_spans ()
193205
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" ])
197212
198213 def test_set_many_success (self ):
199214 client = self .make_client ([b"STORED\r \n " ])
200215 # a convienance function that calls set for every key
201216 result = client .set_many ({b"key" : b"value" }, noreply = False )
202- self .assertTrue (result )
203217
204218 spans = self .memory_exporter .get_finished_spans ()
205219
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" ])
207226
208227 def test_set_get (self ):
209228 client = self .make_client (
@@ -243,7 +262,7 @@ def test_prepend_stored(self):
243262
244263 def test_cas_stored (self ):
245264 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 )
247266 self .assertTrue (result )
248267
249268 spans = self .memory_exporter .get_finished_spans ()
@@ -252,7 +271,7 @@ def test_cas_stored(self):
252271
253272 def test_cas_exists (self ):
254273 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 )
256275 assert result is False
257276
258277 spans = self .memory_exporter .get_finished_spans ()
@@ -261,7 +280,7 @@ def test_cas_exists(self):
261280
262281 def test_cas_not_found (self ):
263282 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 )
265284 assert result is None
266285
267286 spans = self .memory_exporter .get_finished_spans ()
@@ -445,7 +464,11 @@ def test_version_success(self):
445464 def test_stats (self ):
446465 client = self .make_client ([b"STAT fake_stats 1\r \n " , b"END\r \n " ])
447466 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 " ]
449472 assert result == {b"fake_stats" : 1 }
450473
451474 spans = self .memory_exporter .get_finished_spans ()
@@ -544,5 +567,4 @@ def test_delete_many_found(self):
544567 self .assertTrue (result )
545568
546569 spans = self .memory_exporter .get_finished_spans ()
547-
548570 self .check_spans (spans , 2 , ["add key" , "delete key" ])
0 commit comments