Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

Commit 1fbdea9

Browse files
committed
feat: Shimmed sample_row_keys
1 parent 914006d commit 1fbdea9

2 files changed

Lines changed: 23 additions & 10 deletions

File tree

google/cloud/bigtable/table.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -782,13 +782,13 @@ def sample_row_keys(self):
782782
or by casting to a :class:`list` and can be cancelled by
783783
calling ``cancel()``.
784784
"""
785-
data_client = self._instance._client.table_data_client
786-
response_iterator = data_client.sample_row_keys(
787-
request={"table_name": self.name, "app_profile_id": self._app_profile_id}
785+
return (
786+
data_messages_v2_pb2.SampleRowKeysResponse(
787+
row_key=row_key, offset_bytes=offset_bytes
788+
)
789+
for row_key, offset_bytes in self._table_impl.sample_row_keys()
788790
)
789791

790-
return response_iterator
791-
792792
def truncate(self, timeout=None):
793793
"""Truncate the table
794794

tests/unit/v2_client/test_table.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1202,18 +1202,31 @@ def test_table_yield_rows_with_row_set():
12021202

12031203

12041204
def test_table_sample_row_keys():
1205+
from google.cloud.bigtable_v2 import SampleRowKeysResponse
1206+
12051207
credentials = _make_credentials()
12061208
client = _make_client(project="project-id", credentials=credentials, admin=True)
1209+
data_api = _make_data_api(client)
12071210
instance = client.instance(instance_id=INSTANCE_ID)
12081211
table = _make_table(TABLE_ID, instance)
1209-
response_iterator = object()
12101212

1211-
gapic_api = _make_gapic_api(client)
1212-
gapic_api.sample_row_keys.return_value = [response_iterator]
1213+
data_api.get_table.return_value.sample_row_keys.return_value = [
1214+
(b"row-1", 1),
1215+
(b"row-2", 2),
1216+
(b"row-3", 3),
1217+
(b"", 5),
1218+
]
1219+
1220+
expected_sample_row_keys = [
1221+
SampleRowKeysResponse(row_key=b"row-1", offset_bytes=1),
1222+
SampleRowKeysResponse(row_key=b"row-2", offset_bytes=2),
1223+
SampleRowKeysResponse(row_key=b"row-3", offset_bytes=3),
1224+
SampleRowKeysResponse(row_key=b"", offset_bytes=5),
1225+
]
12131226

1214-
result = table.sample_row_keys()
1227+
result = list(table.sample_row_keys())
12151228

1216-
assert result[0] == response_iterator
1229+
assert result == expected_sample_row_keys
12171230

12181231

12191232
def test_table_truncate():

0 commit comments

Comments
 (0)