Skip to content

Commit 9ab4861

Browse files
authored
Merge pull request #511 from basho/bugs/am/ts-list-keys-table-string
Allow TS ListKeys to accept either a Table object or the table name as a String
2 parents 453da67 + f370367 commit 9ab4861

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

riak/client/operations.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -659,15 +659,18 @@ def ts_stream_keys(self, table, timeout=None):
659659
stream.close()
660660
661661
:param table: the table from which to stream keys
662-
:type table: Table
662+
:type table: string or :class:`Table <riak.table.Table>`
663663
:param timeout: a timeout value in milliseconds
664664
:type timeout: int
665665
:rtype: iterator
666666
"""
667+
t = table
668+
if isinstance(t, six.string_types):
669+
t = Table(self, table)
667670
_validate_timeout(timeout)
668671
resource = self._acquire()
669672
transport = resource.object
670-
stream = transport.ts_stream_keys(table, timeout)
673+
stream = transport.ts_stream_keys(t, timeout)
671674
stream.attach(resource)
672675
try:
673676
for keylist in stream:

riak/tests/test_timeseries_pbuf.py

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -436,16 +436,25 @@ def test_stream_keys(self):
436436
table = Table(self.client, table_name)
437437
streamed_keys = []
438438
for keylist in table.stream_keys():
439-
self.assertNotEqual([], keylist)
440-
streamed_keys += keylist
441-
for key in keylist:
442-
self.assertIsInstance(key, list)
443-
self.assertEqual(len(key), 3)
444-
self.assertEqual(bytes_to_str(key[0]), 'hash1')
445-
self.assertEqual(bytes_to_str(key[1]), 'user2')
446-
self.assertIsInstance(key[2], datetime.datetime)
439+
self.validate_keylist(streamed_keys, keylist)
447440
self.assertGreater(len(streamed_keys), 0)
448441

442+
def test_stream_keys_from_string_table(self):
443+
streamed_keys = []
444+
for keylist in self.client.ts_stream_keys(table_name):
445+
self.validate_keylist(streamed_keys, keylist)
446+
self.assertGreater(len(streamed_keys), 0)
447+
448+
def validate_keylist(self, streamed_keys, keylist):
449+
self.assertNotEqual([], keylist)
450+
streamed_keys += keylist
451+
for key in keylist:
452+
self.assertIsInstance(key, list)
453+
self.assertEqual(len(key), 3)
454+
self.assertEqual(bytes_to_str(key[0]), 'hash1')
455+
self.assertEqual(bytes_to_str(key[1]), 'user2')
456+
self.assertIsInstance(key[2], datetime.datetime)
457+
449458
def test_delete_single_value(self):
450459
key = ['hash1', 'user2', self.twentyFiveMinsAgo]
451460
rslt = self.client.ts_delete(table_name, key)

0 commit comments

Comments
 (0)