summaryrefslogtreecommitdiff
path: root/tests/server_commands.py
diff options
context:
space:
mode:
authorandymccurdy <andy@andymccurdy.com>2010-02-17 01:00:10 -0800
committerandymccurdy <andy@andymccurdy.com>2010-02-17 01:00:10 -0800
commit223acf1fdcdca8bc6551919ca39c2fbeb089bd75 (patch)
tree379f57ab7a716b4283f13d251f1198113fbaf956 /tests/server_commands.py
parent5ce4a90fe42d20e180a9c28ddfa41dd09cf77aa4 (diff)
downloadredis-py-223acf1fdcdca8bc6551919ca39c2fbeb089bd75.tar.gz
Redis.pop() is deprecated like Redis.push().
Added a number of tests for the SORT command
Diffstat (limited to 'tests/server_commands.py')
-rw-r--r--tests/server_commands.py75
1 files changed, 74 insertions, 1 deletions
diff --git a/tests/server_commands.py b/tests/server_commands.py
index 401348a..3ff81a5 100644
--- a/tests/server_commands.py
+++ b/tests/server_commands.py
@@ -634,4 +634,77 @@ class ServerCommandsTestCase(unittest.TestCase):
self.make_zset('a', {'a1' : 1, 'a2' : 2, 'a3' : 3})
self.assertEquals(self.client.zscore('a', 'a2'), 2.0)
-
+ # SORT
+ def test_sort_bad_key(self):
+ # key is not set
+ self.assertEquals(self.client.sort('a'), None)
+ # key is a string value
+ self.client['a'] = 'a'
+ self.assertRaises(redis.ResponseError, self.client.sort, 'a')
+ del self.client['a']
+
+ def test_sort_basic(self):
+ self.make_list('a', '3214')
+ self.assertEquals(self.client.sort('a'), ['1', '2', '3', '4'])
+
+ def test_sort_limited(self):
+ self.make_list('a', '3214')
+ self.assertEquals(self.client.sort('a', start=1, num=2), ['2', '3'])
+
+ def test_sort_by(self):
+ self.client['score:1'] = 8
+ self.client['score:2'] = 3
+ self.client['score:3'] = 5
+ self.make_list('a_values', '123')
+ self.assertEquals(self.client.sort('a_values', by='score:*'),
+ ['2', '3', '1'])
+
+ def test_sort_get(self):
+ self.client['user:1'] = 'u1'
+ self.client['user:2'] = 'u2'
+ self.client['user:3'] = 'u3'
+ self.make_list('a', '231')
+ self.assertEquals(self.client.sort('a', get='user:*'),
+ ['u1', 'u2', 'u3'])
+
+ def test_sort_desc(self):
+ self.make_list('a', '231')
+ self.assertEquals(self.client.sort('a', desc=True), ['3', '2', '1'])
+
+ def test_sort_alpha(self):
+ self.make_list('a', 'ecbda')
+ self.assertEquals(self.client.sort('a', alpha=True),
+ ['a', 'b', 'c', 'd', 'e'])
+
+ def test_sort_store(self):
+ self.make_list('a', '231')
+ self.assertEquals(self.client.sort('a', store='sorted_values'), 3)
+ self.assertEquals(self.client.lrange('sorted_values', 0, 5),
+ ['1', '2', '3'])
+
+ def test_sort_all_options(self):
+ self.client['user:1:username'] = 'zeus'
+ self.client['user:2:username'] = 'titan'
+ self.client['user:3:username'] = 'hermes'
+ self.client['user:4:username'] = 'hercules'
+ self.client['user:5:username'] = 'apollo'
+ self.client['user:6:username'] = 'athena'
+ self.client['user:7:username'] = 'hades'
+ self.client['user:8:username'] = 'dionysus'
+
+ self.client['user:1:favorite_drink'] = 'yuengling'
+ self.client['user:2:favorite_drink'] = 'rum'
+ self.client['user:3:favorite_drink'] = 'vodka'
+ self.client['user:4:favorite_drink'] = 'milk'
+ self.client['user:5:favorite_drink'] = 'pinot noir'
+ self.client['user:6:favorite_drink'] = 'water'
+ self.client['user:7:favorite_drink'] = 'gin'
+ self.client['user:8:favorite_drink'] = 'apple juice'
+
+ self.make_list('gods', '12345678')
+ num = self.client.sort('gods', start=2, num=4, by='user:*:username',
+ get='user:*:favorite_drink', desc=True, alpha=True, store='sorted')
+ self.assertEquals(num, 4)
+ self.assertEquals(self.client.lrange('sorted', 0, 10),
+ ['vodka', 'milk', 'gin', 'apple juice'])
+ \ No newline at end of file