-
Notifications
You must be signed in to change notification settings - Fork 39
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
Make test_framework available for users when creating scenarios #621
Make test_framework available for users when creating scenarios #621
Conversation
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. |
scenarios will need a callable entrypoint for the pyz archive
also filter out unused files from the archive sent to the commander
f5641e0
to
5ee0c8b
Compare
LGTM. I changed the test_framework and I checked that this change was reflected the next time I ran a scenario. Will be very useful! |
This changes two important things about how scenarios are written:
test_framework
main()
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.py
as 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.py
and the entiretest_framework
directory into a.pyz
archive which is compressed, base64 encoded, and added to a volume via an initContainer that is deployed along with a vanilla, unmodified image ofpython:3.12-slim
.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 excludetestscenario_*.py
.TODO
warnet init
on an empty directory, runs a network and scenario from there to fully test the user flow (reccomend reviewers do this!)