kind = 'ndiff with -expected +actual'
else:
assert 0, 'Bad diff option'
+ # Remove trailing whitespace on diff output.
+ diff = [line.rstrip() + '\n' for line in diff]
return 'Differences (%s):\n' % kind + _indent(''.join(diff))
# If we're not using diff, then simply list the expected
Then the default eporting options are ignored:
>>> result = suite.run(unittest.TestResult())
- """
- """
- *NOTE*: These doctest are intentionally not placed in raw string to depict
- the trailing whitespace using `\x20` in the diff below.
-
>>> print(result.failures[0][1]) # doctest: +ELLIPSIS
Traceback ...
Failed example:
Differences (ndiff with -expected +actual):
a
- <BLANKLINE>
- +\x20
+ +
b
<BLANKLINE>
<BLANKLINE>
"""
-def test_no_trailing_whitespace_stripping():
- r"""
- The fancy reports had a bug for a long time where any trailing whitespace on
- the reported diff lines was stripped, making it impossible to see the
- differences in line reported as different that differed only in the amount of
- trailing whitespace. The whitespace still isn't particularly visible unless
- you use NDIFF, but at least it is now there to be found.
-
- *NOTE*: This snippet was intentionally put inside a raw string to get rid of
- leading whitespace error in executing the example below
-
- >>> def f(x):
- ... r'''
- ... >>> print('\n'.join(['a ', 'b']))
- ... a
- ... b
- ... '''
- """
- """
- *NOTE*: These doctest are not placed in raw string to depict the trailing whitespace
- using `\x20`
-
- >>> test = doctest.DocTestFinder().find(f)[0]
- >>> flags = doctest.REPORT_NDIFF
- >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test)
- ... # doctest: +ELLIPSIS
- **********************************************************************
- File ..., line 3, in f
- Failed example:
- print('\n'.join(['a ', 'b']))
- Differences (ndiff with -expected +actual):
- - a
- + a
- b
- TestResults(failed=1, attempted=1)
-
- *NOTE*: `\x20` is for checking the trailing whitespace on the +a line above.
- We cannot use actual spaces there, as a commit hook prevents from committing
- patches that contain trailing whitespace. More info on Issue 24746.
- """
-
######################################################################
## Main
######################################################################