Files
dataset-uploader/features/google_sheets_tracker/api_error_handling.feature

67 lines
2.5 KiB
Gherkin

Feature: API Error Handling
As a developer
I want the tracker to handle API errors gracefully
So that failures don't crash the application
Background:
Given an authenticated sheets tracker
Scenario: Handle API failure during status retrieval
Given the Google Sheets API will fail for get operation
When I get the status of "wordnet"
Then the operation should return None values gracefully
And no exception should be raised
Scenario: Handle API failure during status update
Given a sheet with the following datasets
| Dataset Name | Status | Error |
| wordnet | NOT STARTED | |
And the Google Sheets API will fail for update operation
When I attempt to mark "wordnet" as in progress
Then the update should fail gracefully
And no exception should be raised
Scenario: Handle API failure during header loading
Given the Google Sheets API will fail when loading headers
When I create a sheets tracker
Then the tracker should use default column indices
And authentication should still succeed
Scenario: Handle network timeout during API call
Given the Google Sheets API will timeout
When I get the status of "wordnet"
Then the operation should return None values gracefully
And no exception should be raised
Scenario: Handle malformed API response
Given the Google Sheets API will return malformed response
When I get the status of "wordnet"
Then the operation should handle the error gracefully
And return None values
Scenario: Handle API rate limiting
Given the Google Sheets API will return rate limit error
When I attempt to update status for "wordnet"
Then the update should fail gracefully
And no exception should be raised
Scenario: Handle authentication expiration during operation
Given an authenticated sheets tracker
And authentication will expire during operation
When I attempt to get status of "wordnet"
Then the operation should return None values gracefully
And no exception should be raised
Scenario: Get status when sheet is None but authenticated is True
Given a tracker with authenticated=True but sheet=None
When I get the status of "wordnet"
Then the status should be None
And the error should be None
And the row should be None
Scenario: Update status when sheet is None but authenticated is True
Given a tracker with authenticated=True but sheet=None
When I attempt to update status for "wordnet"
Then the update should return False