Use assert(Not)Regex instead of assertTrue or assertFalse in tests#5188
Open
Flamefire wants to merge 3 commits into
Open
Use assert(Not)Regex instead of assertTrue or assertFalse in tests#5188Flamefire wants to merge 3 commits into
assert(Not)Regex instead of assertTrue or assertFalse in tests#5188Flamefire wants to merge 3 commits into
Conversation
When running `bash -i` with `-c` it might have unintended side effects, like modifying the parent processes state. This manifests e.g. in the tests: `python -m test.framework.suite test_run_shell_cmd_basic` causes the process to go to background and stall until typing `fg` on the 2nd invocation of `run_shell_cmd` with `cmd.sh -c ...` Using `BASH_ENV` for the non-interactive use avoids this while still sourcing the env file. To detect that the presence of any argument to `cmd.sh` is used as for interactive usage none would be present.
Otherwise the space won't be printed when it is empty and the regex fails.
This makes the tests shorter and hence easier to read, avoids `re.compile` calls and manual failure message composing. In some cases `assert_multi_regex` could be used to avoid the explicit loops.
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 makes the tests shorter and hence easier to read, avoids
re.compilecalls and manual failure message composing.In some cases
assert_multi_regexcould be used to avoid the explicit loops.While doing that I put the
re.compileinto the assertion instead of assigning to a variable and remove the call when there are no flags required asassertRegexaccepts strings or compiled expressionsExamples:
Continuation of #4205 , #4170, #5134 to remove usage of
assertTrue&assertFalseas for almost everything there is a better alternativeAlso regex assertions are over-used. In some places
assertInor evenassertEqualcould be used which is clearer and faster.However the replacements done here were mostly regex-based with lot's of manual inspection to find good patterns, and finding those where
assertInwould work is even more difficult.Requires: