Skip to content
This repository was archived by the owner on Jan 24, 2023. It is now read-only.

Commit 73dfcc4

Browse files
author
Ariel Shtul
authored
fix issue 49 get/mget with empty series (#50)
* fix issue 49 get/mget with empty series
1 parent d9a2246 commit 73dfcc4

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

redistimeseries/client.py

+12-3
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,20 @@ def parse_m_range(response):
4242
parse_range(item[2])]})
4343
return res
4444

45+
def parse_get(response):
46+
if response == []:
47+
return None
48+
return (int(response[0]), float(response[1]))
49+
4550
def parse_m_get(response):
4651
res = []
4752
for item in response:
48-
res.append({ nativestr(item[0]) : [list_to_dict(item[1]),
49-
item[2][0], float(item[2][1])]})
53+
if item[2] == []:
54+
res.append({ nativestr(item[0]) : [list_to_dict(item[1]), None, None]})
55+
else:
56+
res.append({ nativestr(item[0]) : [list_to_dict(item[1]),
57+
int(item[2][0]), float(item[2][1])]})
58+
5059
return res
5160

5261
def parseToList(response):
@@ -92,7 +101,7 @@ def __init__(self, *args, **kwargs):
92101
self.DELETERULE_CMD : bool_ok,
93102
self.RANGE_CMD : parse_range,
94103
self.MRANGE_CMD : parse_m_range,
95-
self.GET_CMD : lambda x: (int(x[0]), float(x[1])),
104+
self.GET_CMD : parse_get,
96105
self.MGET_CMD : parse_m_get,
97106
self.INFO_CMD : TSInfo,
98107
self.QUERYINDEX_CMD : parseToList,

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def read_all(f):
99

1010
setup(
1111
name='redistimeseries',
12-
version='0.7.0',
12+
version='0.7.1',
1313
description='RedisTimeSeries Python Client',
1414
long_description=read_all("README.md"),
1515
long_description_content_type='text/markdown',

test_commands.py

+10-4
Original file line numberDiff line numberDiff line change
@@ -141,15 +141,21 @@ def testMultiRange(self):
141141
def testGet(self):
142142
'''Test TS.GET calls'''
143143

144-
rts.add(1, 2, 3)
145-
self.assertEqual(2, rts.get(1)[0])
146-
rts.add(1, 3, 4)
147-
self.assertEqual(4, rts.get(1)[1])
144+
name = 'test'
145+
rts.create(name)
146+
self.assertEqual(None, rts.get(name))
147+
rts.add(name, 2, 3)
148+
self.assertEqual(2, rts.get(name)[0])
149+
rts.add(name, 3, 4)
150+
self.assertEqual(4, rts.get(name)[1])
148151

149152
def testMGet(self):
150153
'''Test TS.MGET calls'''
151154
rts.create(1, labels={'Test':'This'})
152155
rts.create(2, labels={'Test':'This', 'Taste':'That'})
156+
act_res = rts.mget(['Test=This'])
157+
exp_res = [{'1': [{}, None, None]}, {'2': [{}, None, None]}]
158+
self.assertEqual(act_res, exp_res)
153159
rts.add(1, '*', 15)
154160
rts.add(2, '*', 25)
155161
res = rts.mget(['Test=This'])

0 commit comments

Comments
 (0)