Fix get_artifact returning the TC API response instead of the artifact #814
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.
This fixes a regression from 384afee where we started using the taskcluster python client instead of making requests manually.
The artifacts route is special because the API returns some JSON as part of a 303 to the artifact's content URL. The previous code followed that
303. The python client does not. So instead we're getting the body which looks like this:
{"type": "s3/...", "url": "whereverthe303pointsat"}
.This fixed it by following the redirect manually to restore the previous behavior.
I also fixed the test as the previous one was basically ignoring the fact that taskcluster was returning a 303 and was mocking as if it didn't exist.
It's worth noting that while it restores the behavior of returning the artifact's content (as a ByteIO), it is still a breaking change as the previous code used to return a Response object.
Fixes #812