- Notifications
You must be signed in to change notification settings - Fork673
test(cli): convert CLI shell tests to pytest test cases#1086
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
Uh oh!
There was an error while loading.Please reload this page.
Conversation
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
codecov-io commentedApr 26, 2020
Codecov Report
@@ Coverage Diff @@## master #1086 +/- ##======================================= Coverage 76.68% 76.68% ======================================= Files 10 10 Lines 2758 2758 ======================================= Hits 2115 2115 Misses 643 643 Continue to review full report at Codecov.
|
max-wittig approved these changesApr 29, 2020
Sign up for freeto 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.
Uh oh!
There was an error while loading.Please reload this page.
An initial attempt at unifying the testing approach 😁
This PR uses the
pytest-console-scripts
plugin and provides agitlab_cli()
wrapper for tests, so people can addgitlab
CL subcommands as a list and include variables (from the test case or from fixtures) to assert against.I'm unsure if this is really the best approach, but I've already been impressed while building this by how much more detail pytest provides for each error/failure, even when running CLI tests. If I did the fixtures right, they should also later be reusable for API functional tests. :P
For now I've not split the tests yet, to make reviews easier (1 shell test -> 1 pytest test), which makes the file quite long. I guess it would also make sense to split them. This would be better anyway, and this should make tests not depend on each other (I'malmost there even now - still have a few todos for some fixtures).
If this approach makes sense I can add some docs on how to contribute tests to make it more accessible for new contributors, :)
An example run is here:https://travis-ci.org/github/python-gitlab/python-gitlab/jobs/679739257
Edit: I've also not yet put this inside
gitlab/tests
yet, to avoid hacking the tox scripts, but I guess the structure will also be a topic