diff options
author | Itamar Haber <itamar@redislabs.com> | 2018-10-15 20:52:33 +0300 |
---|---|---|
committer | Roey Prat <roey.prat@redislabs.com> | 2018-10-20 10:33:10 +0300 |
commit | a52239eee366f9c2087370111878489957ddc3d4 (patch) | |
tree | 7427d807aba42108e96edb9080048bd01a83b86d | |
parent | 016efdb72b1410670f28d890006ed9fa42393a34 (diff) | |
download | redis-py-a52239eee366f9c2087370111878489957ddc3d4.tar.gz |
Implements XDEL
-rwxr-xr-x | redis/client.py | 13 | ||||
-rw-r--r-- | tests/test_commands.py | 14 |
2 files changed, 26 insertions, 1 deletions
diff --git a/redis/client.py b/redis/client.py index 410cdac..45b9879 100755 --- a/redis/client.py +++ b/redis/client.py @@ -432,7 +432,10 @@ class StrictRedis(object): 'XINFO CONSUMERS': parse_xinfo_list, 'XINFO GROUPS': parse_xinfo_list }, - string_keys_to_dict('XACK', int), + string_keys_to_dict( + 'XACK XDEL', + int + ), string_keys_to_dict( 'INCRBYFLOAT HINCRBYFLOAT GEODIST', float @@ -1962,6 +1965,14 @@ class StrictRedis(object): """ return self.execute_command('XACK', name, groupname, *ids) + def xdel(self, name, *ids): + """ + Deletes one or more messages from a stream. + name: name of the stream. + *ids: message ids to delete. + """ + return self.execute_command('XDEL', name, *ids) + # SORTED SET COMMANDS def zadd(self, name, *args, **kwargs): """ diff --git a/tests/test_commands.py b/tests/test_commands.py index 1f70230..ab9c9c9 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -1742,6 +1742,20 @@ class TestStrictCommands(object): assert sr.xack(stream_name, group_name, '1-1') == 0 assert sr.xack(stream_name, group_name, *[x for x in range(5)]) == 0 + @skip_if_server_version_lt('5.0.0') + def test_strict_xdel(self, sr): + stream_name = 'xdel_test_stream' + sr.delete(stream_name) + + assert sr.xdel(stream_name, 1) == 0 + + sr.xadd(stream_name, id=1, foo='bar') + assert sr.xdel(stream_name, 1) == 1 + + stamp = sr.xadd(stream_name, baz='qaz') + assert sr.xdel(stream_name, 1, stamp) == 1 + assert sr.xdel(stream_name, 1, stamp, 42) == 0 + def test_strict_zadd(self, sr): sr.zadd('a', 1.0, 'a1', 2.0, 'a2', a3=3.0) assert sr.zrange('a', 0, -1, withscores=True) == \ |