diff options
author | Konstantin Merenkov <kmerenkov@gmail.com> | 2010-05-22 02:58:15 +0800 |
---|---|---|
committer | Andy McCurdy <andy@andymccurdy.com> | 2010-06-02 01:42:49 +0800 |
commit | 7e8ec2e28d636fb878617f1d0788973aaffd309c (patch) | |
tree | 0e1dbbc0383f8d14d2c55eab84bb2b932d81aa96 | |
parent | 9f360d566960de71eb8608fa9ce83777482a9dc9 (diff) | |
download | redis-py-7e8ec2e28d636fb878617f1d0788973aaffd309c.tar.gz |
blpop / brpop can accept string as key
-rw-r--r-- | redis/client.py | 10 | ||||
-rw-r--r-- | tests/server_commands.py | 4 |
2 files changed, 12 insertions, 2 deletions
diff --git a/redis/client.py b/redis/client.py index 9f17ae7..85be36c 100644 --- a/redis/client.py +++ b/redis/client.py @@ -670,7 +670,10 @@ class Redis(threading.local): If timeout is 0, then block indefinitely. """ - keys = list(keys) + if isinstance(keys, basestring): + keys = [keys] + else: + keys = list(keys) keys.append(timeout) return self.execute_command('BLPOP', *keys) @@ -685,7 +688,10 @@ class Redis(threading.local): If timeout is 0, then block indefinitely. """ - keys = list(keys) + if isinstance(keys, basestring): + keys = [keys] + else: + keys = list(keys) keys.append(timeout) return self.execute_command('BRPOP', *keys) diff --git a/tests/server_commands.py b/tests/server_commands.py index 5e706e3..bc8a218 100644 --- a/tests/server_commands.py +++ b/tests/server_commands.py @@ -224,6 +224,8 @@ class ServerCommandsTestCase(unittest.TestCase): self.assertEquals(self.client.blpop(['b', 'a'], timeout=1), ['a', 'a']) self.assertEquals(self.client.blpop(['b', 'a'], timeout=1), ['a', 'b']) self.assertEquals(self.client.blpop(['b', 'a'], timeout=1), None) + self.make_list('c', 'a') + self.assertEquals(self.client.blpop('c', timeout=1), ['c', 'a']) def test_brpop(self): self.make_list('a', 'ab') @@ -233,6 +235,8 @@ class ServerCommandsTestCase(unittest.TestCase): self.assertEquals(self.client.brpop(['b', 'a'], timeout=1), ['a', 'b']) self.assertEquals(self.client.brpop(['b', 'a'], timeout=1), ['a', 'a']) self.assertEquals(self.client.brpop(['b', 'a'], timeout=1), None) + self.make_list('c', 'a') + self.assertEquals(self.client.brpop('c', timeout=1), ['c', 'a']) def test_lindex(self): # no key |