[2.7] bpo-24746: Avoid stripping trailing whitespace in doctest fancy diff by CuriousLearner · Pull Request #11482 · python/cpython

Expand Up @@ -2355,7 +2355,12 @@ def test_unittest_reportflags(): Then the default eporting options are ignored:
>>> result = suite.run(unittest.TestResult()) >>> print result.failures[0][1] # doctest: +ELLIPSIS """ """ *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: favorite_color Expand All @@ -2368,7 +2373,7 @@ def test_unittest_reportflags(): Differences (ndiff with -expected +actual): a - <BLANKLINE> + +\x20 b <BLANKLINE> <BLANKLINE> Expand Down Expand Up @@ -2717,6 +2722,47 @@ def old_test4(): """ TestResults(failed=0, attempted=4) """
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 ###################################################################### Expand Down