def test_to_pb(self): from gcloud.bigtable.row_filters import CellsRowOffsetFilter from gcloud.bigtable.row_filters import RowSampleFilter from gcloud.bigtable.row_filters import StripValueTransformerFilter row_filter1 = StripValueTransformerFilter(True) row_filter1_pb = row_filter1.to_pb() row_filter2 = RowSampleFilter(0.25) row_filter2_pb = row_filter2.to_pb() row_filter3 = CellsRowOffsetFilter(11) row_filter3_pb = row_filter3.to_pb() row_filter4 = self._makeOne(row_filter1, true_filter=row_filter2, false_filter=row_filter3) filter_pb = row_filter4.to_pb() expected_pb = _RowFilterPB(condition=_RowFilterConditionPB( predicate_filter=row_filter1_pb, true_filter=row_filter2_pb, false_filter=row_filter3_pb, ), ) self.assertEqual(filter_pb, expected_pb)
def test_to_pb(self): from gcloud.bigtable.row_filters import CellsRowOffsetFilter from gcloud.bigtable.row_filters import RowSampleFilter from gcloud.bigtable.row_filters import StripValueTransformerFilter row_filter1 = StripValueTransformerFilter(True) row_filter1_pb = row_filter1.to_pb() row_filter2 = RowSampleFilter(0.25) row_filter2_pb = row_filter2.to_pb() row_filter3 = CellsRowOffsetFilter(11) row_filter3_pb = row_filter3.to_pb() row_filter4 = self._makeOne(row_filter1, true_filter=row_filter2, false_filter=row_filter3) filter_pb = row_filter4.to_pb() expected_pb = _RowFilterPB( condition=_RowFilterConditionPB( predicate_filter=row_filter1_pb, true_filter=row_filter2_pb, false_filter=row_filter3_pb, ), ) self.assertEqual(filter_pb, expected_pb)
def test_with_filter(self): from gcloud.bigtable.row_filters import RowSampleFilter table_name = 'table_name' row_filter = RowSampleFilter(0.33) result = self._callFUT(table_name, filter_=row_filter) expected_result = _ReadRowsRequestPB( table_name=table_name, filter=row_filter.to_pb(), ) self.assertEqual(result, expected_result)
def test_with_filter(self): from gcloud.bigtable._generated import ( bigtable_service_messages_pb2 as messages_pb2) from gcloud.bigtable.row_filters import RowSampleFilter table_name = 'table_name' row_filter = RowSampleFilter(0.33) result = self._callFUT(table_name, filter_=row_filter) expected_result = messages_pb2.ReadRowsRequest( table_name=table_name, filter=row_filter.to_pb(), ) self.assertEqual(result, expected_result)
def test_to_pb(self): from gcloud.bigtable.row_filters import RowSampleFilter from gcloud.bigtable.row_filters import StripValueTransformerFilter row_filter1 = StripValueTransformerFilter(True) row_filter1_pb = row_filter1.to_pb() row_filter2 = RowSampleFilter(0.25) row_filter2_pb = row_filter2.to_pb() row_filter3 = self._makeOne(filters=[row_filter1, row_filter2]) filter_pb = row_filter3.to_pb() expected_pb = _RowFilterPB(interleave=_RowFilterInterleavePB( filters=[row_filter1_pb, row_filter2_pb], ), ) self.assertEqual(filter_pb, expected_pb)
def test_to_pb(self): from gcloud.bigtable._generated import bigtable_data_pb2 as data_pb2 from gcloud.bigtable.row_filters import RowSampleFilter from gcloud.bigtable.row_filters import StripValueTransformerFilter row_filter1 = StripValueTransformerFilter(True) row_filter1_pb = row_filter1.to_pb() row_filter2 = RowSampleFilter(0.25) row_filter2_pb = row_filter2.to_pb() row_filter3 = self._makeOne(filters=[row_filter1, row_filter2]) filter_pb = row_filter3.to_pb() expected_pb = data_pb2.RowFilter(chain=data_pb2.RowFilter.Chain( filters=[row_filter1_pb, row_filter2_pb], ), ) self.assertEqual(filter_pb, expected_pb)
def test_to_pb(self): from gcloud.bigtable.row_filters import RowSampleFilter from gcloud.bigtable.row_filters import StripValueTransformerFilter row_filter1 = StripValueTransformerFilter(True) row_filter1_pb = row_filter1.to_pb() row_filter2 = RowSampleFilter(0.25) row_filter2_pb = row_filter2.to_pb() row_filter3 = self._makeOne(filters=[row_filter1, row_filter2]) filter_pb = row_filter3.to_pb() expected_pb = _RowFilterPB( interleave=_RowFilterInterleavePB( filters=[row_filter1_pb, row_filter2_pb], ), ) self.assertEqual(filter_pb, expected_pb)
def test_to_pb_false_only(self): from gcloud.bigtable._generated import bigtable_data_pb2 as data_pb2 from gcloud.bigtable.row_filters import RowSampleFilter from gcloud.bigtable.row_filters import StripValueTransformerFilter row_filter1 = StripValueTransformerFilter(True) row_filter1_pb = row_filter1.to_pb() row_filter2 = RowSampleFilter(0.25) row_filter2_pb = row_filter2.to_pb() row_filter3 = self._makeOne(row_filter1, false_filter=row_filter2) filter_pb = row_filter3.to_pb() expected_pb = data_pb2.RowFilter( condition=data_pb2.RowFilter.Condition( predicate_filter=row_filter1_pb, false_filter=row_filter2_pb, ), ) self.assertEqual(filter_pb, expected_pb)
def test_to_pb(self): from gcloud.bigtable._generated import bigtable_data_pb2 as data_pb2 from gcloud.bigtable.row_filters import RowSampleFilter from gcloud.bigtable.row_filters import StripValueTransformerFilter row_filter1 = StripValueTransformerFilter(True) row_filter1_pb = row_filter1.to_pb() row_filter2 = RowSampleFilter(0.25) row_filter2_pb = row_filter2.to_pb() row_filter3 = self._makeOne(filters=[row_filter1, row_filter2]) filter_pb = row_filter3.to_pb() expected_pb = data_pb2.RowFilter( chain=data_pb2.RowFilter.Chain( filters=[row_filter1_pb, row_filter2_pb], ), ) self.assertEqual(filter_pb, expected_pb)
def test_to_pb_nested(self): from gcloud.bigtable.row_filters import CellsRowLimitFilter from gcloud.bigtable.row_filters import RowSampleFilter from gcloud.bigtable.row_filters import StripValueTransformerFilter row_filter1 = StripValueTransformerFilter(True) row_filter2 = RowSampleFilter(0.25) row_filter3 = self._makeOne(filters=[row_filter1, row_filter2]) row_filter3_pb = row_filter3.to_pb() row_filter4 = CellsRowLimitFilter(11) row_filter4_pb = row_filter4.to_pb() row_filter5 = self._makeOne(filters=[row_filter3, row_filter4]) filter_pb = row_filter5.to_pb() expected_pb = _RowFilterPB(interleave=_RowFilterInterleavePB( filters=[row_filter3_pb, row_filter4_pb], ), ) self.assertEqual(filter_pb, expected_pb)
def test_commit(self): from gcloud.bigtable._testing import _FakeStub from gcloud.bigtable.row_filters import RowSampleFilter row_key = b'row_key' table_name = 'projects/more-stuff' column_family_id1 = u'column_family_id1' column_family_id2 = u'column_family_id2' column_family_id3 = u'column_family_id3' column1 = b'column1' column2 = b'column2' timeout_seconds = 262 client = _Client(timeout_seconds=timeout_seconds) table = _Table(table_name, client=client) row_filter = RowSampleFilter(0.33) row = self._makeOne(row_key, table, filter_=row_filter) # Create request_pb value1 = b'bytes-value' mutation1 = _MutationPB( set_cell=_MutationSetCellPB( family_name=column_family_id1, column_qualifier=column1, timestamp_micros=-1, # Default value. value=value1, ), ) mutation2 = _MutationPB( delete_from_row=_MutationDeleteFromRowPB(), ) mutation3 = _MutationPB( delete_from_column=_MutationDeleteFromColumnPB( family_name=column_family_id2, column_qualifier=column2, ), ) mutation4 = _MutationPB( delete_from_family=_MutationDeleteFromFamilyPB( family_name=column_family_id3, ), ) request_pb = _CheckAndMutateRowRequestPB( table_name=table_name, row_key=row_key, predicate_filter=row_filter.to_pb(), true_mutations=[mutation1, mutation3, mutation4], false_mutations=[mutation2], ) # Create response_pb predicate_matched = True response_pb = _CheckAndMutateRowResponsePB( predicate_matched=predicate_matched) # Patch the stub used by the API method. client._data_stub = stub = _FakeStub(response_pb) # Create expected_result. expected_result = predicate_matched # Perform the method and check the result. row.set_cell(column_family_id1, column1, value1, state=True) row.delete(state=False) row.delete_cell(column_family_id2, column2, state=True) row.delete_cells(column_family_id3, row.ALL_COLUMNS, state=True) result = row.commit() self.assertEqual(result, expected_result) self.assertEqual(stub.method_calls, [( 'CheckAndMutateRow', (request_pb, timeout_seconds), {}, )]) self.assertEqual(row._true_pb_mutations, []) self.assertEqual(row._false_pb_mutations, [])