def test__handle_row_contents(self): from gcloud.bigtable._generated import bigtable_data_pb2 as data_pb2 from gcloud.bigtable._generated import ( bigtable_service_messages_pb2 as messages_pb2) from gcloud.bigtable.row_data import Cell partial_row_data = self._makeOne(None) cell1_pb = data_pb2.Cell(timestamp_micros=1, value=b'val1') cell2_pb = data_pb2.Cell(timestamp_micros=200, value=b'val2') cell3_pb = data_pb2.Cell(timestamp_micros=300000, value=b'val3') col1 = b'col1' col2 = b'col2' columns = [ data_pb2.Column(qualifier=col1, cells=[cell1_pb, cell2_pb]), data_pb2.Column(qualifier=col2, cells=[cell3_pb]), ] family_name = u'name' row_contents = data_pb2.Family(name=family_name, columns=columns) chunk = messages_pb2.ReadRowsResponse.Chunk(row_contents=row_contents) self.assertEqual(partial_row_data.cells, {}) partial_row_data._handle_row_contents(chunk) expected_cells = { family_name: { col1: [Cell.from_pb(cell1_pb), Cell.from_pb(cell2_pb)], col2: [Cell.from_pb(cell3_pb)], } } self.assertEqual(partial_row_data.cells, expected_cells)
def test_read_row_complete(self): from gcloud.bigtable.row_data import Cell from gcloud.bigtable.row_data import PartialRowData chunk = _ReadRowsResponseCellChunkPB( row_key=self.ROW_KEY, family_name=self.FAMILY_NAME, qualifier=self.QUALIFIER, timestamp_micros=self.TIMESTAMP_MICROS, value=self.VALUE, commit_row=True, ) chunks = [chunk] expected_result = PartialRowData(row_key=self.ROW_KEY) family = expected_result._cells.setdefault(self.FAMILY_NAME, {}) column = family.setdefault(self.QUALIFIER, []) column.append(Cell.from_pb(chunk)) self._read_row_helper(chunks, expected_result)