Ignore whitespace differences when testing error messages #75
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.
Problem
When I run the unit tests locally, I get failures for
test_bin.py
'sTestError
tests. It looks to be because my detected terminal width is configured differently than is expected, so the "usage" portion of the error message wraps differently than expected:Proposed solution
Add a method
TestError.assertEqualIgnoreWhitespace()
that replaces any chunk of whitespace with a single space before comparing two strings, and call this method when comparingstderr
to the expected output.Also considered
I looked through the Python
unittest
documentation, and I was unable to find an existing method that would ignore differences in whitespace when asserting equality between two strings.I considered using a regular expression to standardize whitespace differences (one of the proposed solutions on this StackOverflow question), but that would add an import and (in my opinion) some unnecessary complexity.