def test_batch__character_limit(self): context = mock.Mock() step = BulkApiDmlOperation( sobject="Contact", operation=DataOperationType.INSERT, api_options={"batch_size": 2}, context=context, fields=["LastName"], ) records = [["Test"], ["Test2"], ["Test3"]] csv_rows = [step._serialize_csv_record(step.fields)] for r in records: csv_rows.append(step._serialize_csv_record(r)) char_limit = sum([len(r) for r in csv_rows]) - 1 # Ask for batches of three, but we # should get batches of 2 back results = list(step._batch(iter(records), n=3, char_limit=char_limit)) assert len(results) == 2 assert list(results[0]) == [ "LastName\r\n".encode("utf-8"), "Test\r\n".encode("utf-8"), "Test2\r\n".encode("utf-8"), ] assert list(results[1]) == [ "LastName\r\n".encode("utf-8"), "Test3\r\n".encode("utf-8"), ]
def test_batch(self): context = mock.Mock() step = BulkApiDmlOperation( sobject="Contact", operation=DataOperationType.INSERT, api_options={"batch_size": 2}, context=context, fields=["LastName"], ) records = iter([["Test"], ["Test2"], ["Test3"]]) results = list(step._batch(records, n=2)) assert len(results) == 2 assert list(results[0]) == [ "LastName\r\n".encode("utf-8"), "Test\r\n".encode("utf-8"), "Test2\r\n".encode("utf-8"), ] assert list(results[1]) == [ "LastName\r\n".encode("utf-8"), "Test3\r\n".encode("utf-8"), ]