pygsheets icon indicating copy to clipboard operation
pygsheets copied to clipboard

[FIX] run_batch with requests from multiple spreadsheets

Open Sevans711 opened this issue 1 year ago • 3 comments

Previously, run_batch behavior was not correct (or at least, not intuitive - there was a return statement direcly inside a for loop). Previous behavior:

  1. batch update all requests for the first spreadsheet in batched_requests
  2. return reply from that update, without clearing self.batched_requests

New behavior:

  1. batch update all requests for each spreadsheet in batched_requests (one spreadsheet at a time)
  2. set self.batched_requests = dict()
  3. return result = list of replies, with length equal to number of spreadsheets. For backwards compatibility, when there is only one spreadsheet the default behavior is to return result[0] instead.

Sevans711 avatar May 25 '23 15:05 Sevans711

Thank you for the PR! please add a test to verify if its all good.

nithinmurali avatar May 25 '23 23:05 nithinmurali

Okay, I did this renaming: _return_list_if_single --> return_list_if_single.

Can you help me with "add a test to verify if it's all good"? I'm relatively new at contributing to other repositories. Also, thank you for building/maintaining pygsheets!

Sevans711 avatar May 26 '23 14:05 Sevans711

So we need to add some tests to verify that the functionality that you added works as intended. For pygsheets we only have tests that use the real API (end to end tests). You can find them here.

For this PR you can write a test that makes some batch requests in multiple sheets that would have failed with the old code but with this fix its fixed.

Please refer to existing examples on how to write tests (you can also find examples in old PRs #571 )

nithinmurali avatar May 26 '23 23:05 nithinmurali