Skip to content

Commit 894c48b

Browse files
committed
tests for linsert, lpushx, and rpushx
1 parent 0c8715b commit 894c48b

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

tests/server_commands.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,24 @@ def test_lindex(self):
272272
self.assertEquals(self.client.lindex('a', '1'), 'b')
273273
self.assertEquals(self.client.lindex('a', '2'), 'c')
274274

275+
def test_linsert(self):
276+
# no key
277+
self.assertEquals(self.client.linsert('a', 'after', 'x', 'y'), 0)
278+
# key is not a list
279+
self.client['a'] = 'b'
280+
self.assertRaises(
281+
redis.ResponseError, self.client.linsert, 'a', 'after', 'x', 'y'
282+
)
283+
del self.client['a']
284+
# real logic
285+
self.make_list('a', 'abc')
286+
self.assertEquals(self.client.linsert('a', 'after', 'b', 'b1'), 4)
287+
self.assertEquals(self.client.lrange('a', 0, -1),
288+
['a', 'b', 'b1', 'c'])
289+
self.assertEquals(self.client.linsert('a', 'before', 'b', 'a1'), 5)
290+
self.assertEquals(self.client.lrange('a', 0, -1),
291+
['a', 'a1', 'b', 'b1', 'c'])
292+
275293
def test_llen(self):
276294
# no key
277295
self.assertEquals(self.client.llen('a'), 0)
@@ -313,6 +331,18 @@ def test_lpush(self):
313331
self.assertEquals(self.client.lindex('a', 0), 'a')
314332
self.assertEquals(self.client.lindex('a', 1), 'b')
315333

334+
def test_lpushx(self):
335+
# key is not a list
336+
self.client['a'] = 'b'
337+
self.assertRaises(redis.ResponseError, self.client.lpushx, 'a', 'a')
338+
del self.client['a']
339+
# real logic
340+
self.assertEquals(self.client.lpushx('a', 'b'), 0)
341+
self.assertEquals(self.client.lrange('a', 0, -1), [])
342+
self.make_list('a', 'abc')
343+
self.assertEquals(self.client.lpushx('a', 'd'), 4)
344+
self.assertEquals(self.client.lrange('a', 0, -1), ['d', 'a', 'b', 'c'])
345+
316346
def test_lrange(self):
317347
# no key
318348
self.assertEquals(self.client.lrange('a', 0, 1), [])
@@ -436,6 +466,18 @@ def test_rpush(self):
436466
self.assertEquals(self.client.lindex('a', 0), 'a')
437467
self.assertEquals(self.client.lindex('a', 1), 'b')
438468

469+
def test_rpushx(self):
470+
# key is not a list
471+
self.client['a'] = 'b'
472+
self.assertRaises(redis.ResponseError, self.client.rpushx, 'a', 'a')
473+
del self.client['a']
474+
# real logic
475+
self.assertEquals(self.client.rpushx('a', 'b'), 0)
476+
self.assertEquals(self.client.lrange('a', 0, -1), [])
477+
self.make_list('a', 'abc')
478+
self.assertEquals(self.client.rpushx('a', 'd'), 4)
479+
self.assertEquals(self.client.lrange('a', 0, -1), ['a', 'b', 'c', 'd'])
480+
439481
# Set commands
440482
def make_set(self, name, l):
441483
for i in l:

0 commit comments

Comments
 (0)