-
Notifications
You must be signed in to change notification settings - Fork 9
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
Artifact Fetching Module #118
Merged
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
…r into smartin_artifact_fetcher
…r into smartin_artifact_fetcher
…he differences in artifact type
…olve JINJA variables
… existing hash buffering work.
…-coverage statistic for abstract classes
@ForgottenProgramme Tagging you for visibility. Let's work together on deprecating the |
This will remain in draft-mode until I finish adding unit test coverage for |
…or more dynamic expected value checking
…r into smartin_artifact_fetcher
beeankha
reviewed
Sep 13, 2024
beeankha
approved these changes
Sep 13, 2024
Co-authored-by: Bianca Henderson <[email protected]>
ForgottenProgramme
pushed a commit
that referenced
this pull request
Sep 16, 2024
* Initial outline for the first fetching module * Breaks initial outline up into several sub-classes to better manage the differences in artifact type * Adds some in-progress documentation * Flushes out fetch exceptions * Sures-up documentation in the artifact base class * Finishes templat for git Artifact Fetcher * Starts work, in-earnest, on the HTTP artifact fetcher * First-pass implementation of the _extract() function * Implements get_archive_sha256() * Adds documentation * Fetcher exceptions are now under a dedicated exception module * Fixes current linting errors * Fixes static analyzer issues * The RecipeReader.get() call in from_recipe() now uses sub_vars to resolve JINJA variables * README changes * Fixes an issue with deriving archive names from URLs * Fixes more extraction naming issues * Introduces hash utility library to standardize hashing usage. Removes existing hash buffering work. * Adds unit tests for new hashing utility module * Remove unnessecary uses of pass. This gives a much more accurate test-coverage statistic for abstract classes * Starts work on artifact fetching unit tests * Adds advanced HTTP mockers * Adds unit test for fetch() that mocks the file system and HTTP requests * Adds missing pyfakefs requirement to the recipe file * Fixing build test by including conda-forge * Adds fetch failure unit tests * Refactors test_fetch() to use test params instead of fixture params for more dynamic expected value checking * Adds test_get_path_to_source_code() to test the happy-path of that function * Adds unit test for get_archive_sha256() * Adds unit test for get_archive_type() * Update conda_recipe_manager/fetcher/base_artifact_fetcher.py Co-authored-by: Bianca Henderson <[email protected]> --------- Co-authored-by: Bianca Henderson <[email protected]>
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.
Introduces the
fetcher/
module to CRM. This module is capable of downloading and extracting build artifacts to a secure temporary directory. This will be coupled with a newscanner
module for future automation efforts.Other changes:
pyfakefs
as a test dependency (used for mocking file systems)MockHttp*
classes to mock-out responses fromrequests
git
-based fetcherfrom_recipe
factory method that will construct fetcher instances from a recipe's/source
section.