-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: do not swallow non-backend errors in datasets() #85
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
datasets()
will filter out any dataset JSON objects it can not parse, just to gracefully degrade when there is something weird in the backend response, but only for some datasets. However, currently it also hides e.g. any coding errors in theDataset()
constructor, because we catch things unconditionally.This changes
Dataset
to consistently throwJuliaHubError
when it encounters a backend response it can not parse, anddatasets()
will then only filter those datasets. Any other errors will get rethrown, makingdatasets()
itself throw, directly exposing non-backend issues to the caller.It also adds direct test coverage on the error handling in
Dataset(::Dict)
calls, which in turn required some slightly refactoring of the mocking code (to reuse the bit that constructs the dataset JSON objects).