-
Notifications
You must be signed in to change notification settings - Fork 872
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
pytest: add blackbox tests for reckless #6110
pytest: add blackbox tests for reckless #6110
Conversation
64756f6
to
59b97f6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Feels rather heavy-handed to replicate the github web server to serve a static snapshot (blob in repo). Wouldn't it make sense to have an artificial plugin repo layed out in-tree, and work on that in-tree repo with artificial plugins instead? It'd give us more fine-grained control than dealing with real plugins that may have their very own constraints and requirements. It'd also make reproducing issues much much easier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't we use git to get a clone of the repository and then we mostly work on the local clone? We could skip the entire cloning step here and just have reckless
work on what looks like a checked out plugins repo, so we don't need a server at all here.
Also, git repos can be served over static http, so this would already have been sufficient:
python -m http.server
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I went halfway here - the git repo is now redirected to the .git file rather than being served in multiple steps over http, which has eliminated much of the complexity. Generating the file tree and serving as json, etc., still seemed simplest in flask, so I've left it in to serve those api endpoints.
fdb48ee
to
cb3ae3d
Compare
e6c0090
to
04c6abb
Compare
They prefer Paths to be explicitly cast as strings
This should have been added earlier as @cdecker suggested, but is needed to enable CI testing. Changelog-Changed: Reckless - added support for networks beyond bitocoin and regtest
This will be used during CI testing in the following commit.
4cf8500
to
d27fa6e
Compare
A canned lightningd/plugins is used to test against. This allows faster and more deterministic outcomes. Changelog-None
d27fa6e
to
c09a3fc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ack c09a3fc
Because there is a lot of searching and hitting the repo server, a proxy with canned repos is used. A side-effect is the tests should be faster and more deterministic in outcome.
Changelog-None