nithinmurali / pygsheets

Google Sheets Python API v4
https://pygsheets.readthedocs.io/en/latest
Other
1.5k stars 220 forks source link

[FIX] run_batch with requests from multiple spreadsheets #582

Open Sevans711 opened 1 year ago

Sevans711 commented 1 year ago

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.
nithinmurali commented 1 year ago

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

Sevans711 commented 1 year ago

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!

nithinmurali commented 1 year ago

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 )