Skip to content

Commit 3981484

Browse files
Add support to consumername in xpending_range (#1602)
1 parent 039488d commit 3981484

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

redis/commands.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2065,18 +2065,21 @@ def xpending(self, name, groupname):
20652065
"""
20662066
return self.execute_command('XPENDING', name, groupname)
20672067

2068-
def xpending_range(self, name, groupname, min, max, count,
2069-
consumername=None, idle=None):
2068+
def xpending_range(self, name, groupname, idle=None,
2069+
min=None, max=None, count=None,
2070+
consumername=None):
20702071
"""
20712072
Returns information about pending messages, in a range.
2073+
20722074
name: name of the stream.
20732075
groupname: name of the consumer group.
2076+
idle: available from version 6.2. filter entries by their
2077+
idle-time, given in milliseconds (optional).
20742078
min: minimum stream ID.
20752079
max: maximum stream ID.
20762080
count: number of messages to return
20772081
consumername: name of a consumer to filter by (optional).
2078-
idle: available from version 6.2. filter entries by their
2079-
idle-time, given in milliseconds (optional).
2082+
20802083
"""
20812084
if {min, max, count} == {None}:
20822085
if idle is not None or consumername is not None:
@@ -2103,6 +2106,9 @@ def xpending_range(self, name, groupname, min, max, count,
21032106
pieces.extend([min, max, count])
21042107
except TypeError:
21052108
pass
2109+
# consumername
2110+
if consumername:
2111+
pieces.append(consumername)
21062112

21072113
return self.execute_command('XPENDING', *pieces, parse_detail=True)
21082114

tests/test_commands.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3217,6 +3217,14 @@ def test_xpending_range(self, r):
32173217
assert response[1]['message_id'] == m2
32183218
assert response[1]['consumer'] == consumer2.encode()
32193219

3220+
# test with consumer name
3221+
response = r.xpending_range(stream, group,
3222+
min='-', max='+', count=5,
3223+
consumername=consumer1)
3224+
assert len(response) == 1
3225+
assert response[0]['message_id'] == m1
3226+
assert response[0]['consumer'] == consumer1.encode()
3227+
32203228
@skip_if_server_version_lt('6.2.0')
32213229
def test_xpending_range_idle(self, r):
32223230
stream = 'stream'

0 commit comments

Comments
 (0)