Gracefully handle null JSON responses from API #641
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes
For some DELETE requests, notably when deleting an Alert, the API returns a JSON response containing only
null
. This is not seen as an empty response, because the content length is greater than zero.When calling
WorkspaceClient.alerts.delete(alertId)
, this results in the alert being deleted as expected. However, aTypeError
is raised when trying to unpack the response atdatabricks/sdk/core.py:170
.To fix this, we will null-check the decoded JSON before attempting to unpack it. If it is
None
, we will simply return the response dict like we do for empty responses.Tests
make test
run locallymake fmt
appliednull
response received when callingDELETE /api/2.0/preview/sql/alerts/alertid
. This test fails before applying my fix, and passes with the fix in place.