issue 1553: Include terminal newlines in diffs
This commit is contained in:
parent
144dc12e55
commit
98adf204b2
|
@ -23,15 +23,23 @@
|
||||||
only ran once. Now a failure is raised. Fixes (`#460`_). Thanks to
|
only ran once. Now a failure is raised. Fixes (`#460`_). Thanks to
|
||||||
`@nikratio`_ for bug report, `@RedBeardCode`_ and `@tomviner`_ for PR.
|
`@nikratio`_ for bug report, `@RedBeardCode`_ and `@tomviner`_ for PR.
|
||||||
|
|
||||||
|
* Create correct diff for strings ending with newlines. Fixes (`#1553`_).
|
||||||
|
Thanks `@Vogtinator`_ for reporting. Thanks to `@RedBeardCode`_ and
|
||||||
|
`@tomviner`_ for PR.
|
||||||
|
|
||||||
|
*
|
||||||
|
|
||||||
.. _#1580: https://github.com/pytest-dev/pytest/pull/1580
|
.. _#1580: https://github.com/pytest-dev/pytest/pull/1580
|
||||||
.. _#1605: https://github.com/pytest-dev/pytest/issues/1605
|
.. _#1605: https://github.com/pytest-dev/pytest/issues/1605
|
||||||
.. _#1597: https://github.com/pytest-dev/pytest/pull/1597
|
.. _#1597: https://github.com/pytest-dev/pytest/pull/1597
|
||||||
.. _#460: https://github.com/pytest-dev/pytest/pull/460
|
.. _#460: https://github.com/pytest-dev/pytest/pull/460
|
||||||
|
.. _#1553: https://github.com/pytest-dev/pytest/issues/1553
|
||||||
|
|
||||||
.. _@graingert: https://github.com/graingert
|
.. _@graingert: https://github.com/graingert
|
||||||
.. _@taschini: https://github.com/taschini
|
.. _@taschini: https://github.com/taschini
|
||||||
.. _@nikratio: https://github.com/nikratio
|
.. _@nikratio: https://github.com/nikratio
|
||||||
.. _@RedBeardCode: https://github.com/RedBeardCode
|
.. _@RedBeardCode: https://github.com/RedBeardCode
|
||||||
|
.. _@Vogtinator: https://github.com/Vogtinator
|
||||||
|
|
||||||
|
|
||||||
2.9.2
|
2.9.2
|
||||||
|
|
|
@ -225,9 +225,10 @@ def _diff_text(left, right, verbose=False):
|
||||||
'characters in diff, use -v to show') % i]
|
'characters in diff, use -v to show') % i]
|
||||||
left = left[:-i]
|
left = left[:-i]
|
||||||
right = right[:-i]
|
right = right[:-i]
|
||||||
|
keepends = True
|
||||||
explanation += [line.strip('\n')
|
explanation += [line.strip('\n')
|
||||||
for line in ndiff(left.splitlines(),
|
for line in ndiff(left.splitlines(keepends),
|
||||||
right.splitlines())]
|
right.splitlines(keepends))]
|
||||||
return explanation
|
return explanation
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -428,7 +428,7 @@ def test_assert_compare_truncate_longmessage(monkeypatch, testdir):
|
||||||
"*- 3",
|
"*- 3",
|
||||||
"*- 5",
|
"*- 5",
|
||||||
"*- 7",
|
"*- 7",
|
||||||
"*truncated (191 more lines)*use*-vv*",
|
"*truncated (193 more lines)*use*-vv*",
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
@ -626,3 +626,17 @@ def test_set_with_unsortable_elements():
|
||||||
+ repr(3)
|
+ repr(3)
|
||||||
""").strip()
|
""").strip()
|
||||||
assert '\n'.join(expl) == dedent
|
assert '\n'.join(expl) == dedent
|
||||||
|
|
||||||
|
def test_diff_newline_at_end(monkeypatch, testdir):
|
||||||
|
testdir.makepyfile(r"""
|
||||||
|
def test_diff():
|
||||||
|
assert 'asdf' == 'asdf\n'
|
||||||
|
""")
|
||||||
|
|
||||||
|
result = testdir.runpytest()
|
||||||
|
result.stdout.fnmatch_lines(r"""
|
||||||
|
*assert 'asdf' == 'asdf\n'
|
||||||
|
* - asdf
|
||||||
|
* + asdf
|
||||||
|
* ? +
|
||||||
|
""")
|
||||||
|
|
Loading…
Reference in New Issue