Make test_framework available for users when creating scenarios#619
Closed
pinheadmz wants to merge 10 commits intobitcoin-dev-project:mainfrom
Closed
Make test_framework available for users when creating scenarios#619pinheadmz wants to merge 10 commits intobitcoin-dev-project:mainfrom
pinheadmz wants to merge 10 commits intobitcoin-dev-project:mainfrom
Conversation
scenarios will need a callable entrypoint for the pyz archive
also filter out unused files from the archive sent to the commander
Collaborator
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
1e73244 to
203b444
Compare
203b444 to
9337ed9
Compare
mplsgrant
reviewed
Sep 25, 2024
src/warnet/control.py
Outdated
| if any( | ||
| needle in str(path) for needle in [ | ||
| ".pyc", | ||
| ".csv", |
Collaborator
There was a problem hiding this comment.
Do we need to categorically reject csv files? It's a common format, and I can imagine a user thinking they could use it.
Contributor
Author
|
fuck, right... |
This file contains hidden or 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.
This changes two important things about how scenarios are written:
test_frameworkmain()function, instead of (or in addition to) the__name__ == "__main__"logic:example:
Projects
When a user creates a project, they will get a
scenarios/directory which includes our default scenarios likeminer_std.pyas well as a complete copy oftest_framework. They are welcome to edit the framework, the code in that directory is actually deployed.Running Scenarios
When executing
warnet run <path>this PR bundles up the scenario file,commander.pyand the entiretest_frameworkdirectory into a.pyzarchive which is compressed, base64 encoded, and added as raw data in a config map that is deployed along with a vanilla, unmodified image ofpython:3.12-slim. Deploying our (current) biggest scenariosignet_miner.pyresults in a config map of 118,459 bytes, which is still significantly below the 1 MB recommended maximum for configMap.Side effects
The grossest thing about this PR in my opinion is that all the scenarios we use only for tests have to be moved as well, so they are in a directory with
test_framework. To deal with that, I adjusted the "exclude" logic incopy_scenario_defaults()to filter by regex and then excludeTEST_*.py.TODO
warnet initon an empty directory, runs a network and scenario from there to fully test the user flow (reccomend reviewers do this!)