Mercurial > public > mercurial-scm > hg-stable
diff tests/test-bdiff.py @ 43076:2372284d9457
formatting: blacken the codebase
This is using my patch to black
(https://github.com/psf/black/pull/826) so we don't un-wrap collection
literals.
Done with:
hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S
# skip-blame mass-reformatting only
# no-check-commit reformats foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D6971
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:45:02 -0400 |
parents | e961f18a0094 |
children | 6000f5b25c9b |
line wrap: on
line diff
--- a/tests/test-bdiff.py Sat Oct 05 10:29:34 2019 -0400 +++ b/tests/test-bdiff.py Sun Oct 06 09:45:02 2019 -0400 @@ -3,25 +3,28 @@ import struct import unittest -from mercurial import ( - mdiff, -) +from mercurial import mdiff -class diffreplace( - collections.namedtuple('diffreplace', 'start end from_ to')): + +class diffreplace(collections.namedtuple('diffreplace', 'start end from_ to')): def __repr__(self): return 'diffreplace(%r, %r, %r, %r)' % self + class BdiffTests(unittest.TestCase): - def assert_bdiff_applies(self, a, b): d = mdiff.textdiff(a, b) c = a if d: c = mdiff.patches(a, [d]) self.assertEqual( - c, b, ("bad diff+patch result from\n %r to\n " - "%r: \nbdiff: %r\npatched: %r" % (a, b, d, c[:200]))) + c, + b, + ( + "bad diff+patch result from\n %r to\n " + "%r: \nbdiff: %r\npatched: %r" % (a, b, d, c[:200]) + ), + ) def assert_bdiff(self, a, b): self.assert_bdiff_applies(a, b) @@ -58,11 +61,11 @@ q = 0 actions = [] while pos < len(bin): - p1, p2, l = struct.unpack(">lll", bin[pos:pos + 12]) + p1, p2, l = struct.unpack(">lll", bin[pos : pos + 12]) pos += 12 if p1: actions.append(a[q:p1]) - actions.append(diffreplace(p1, p2, a[p1:p2], bin[pos:pos + l])) + actions.append(diffreplace(p1, p2, a[p1:p2], bin[pos : pos + l])) pos += l q = p2 if q < len(a): @@ -71,37 +74,55 @@ def test_issue1295(self): cases = [ - (b"x\n\nx\n\nx\n\nx\n\nz\n", b"x\n\nx\n\ny\n\nx\n\nx\n\nz\n", - [b'x\n\nx\n\n', - diffreplace(6, 6, b'', b'y\n\n'), - b'x\n\nx\n\nz\n']), - (b"x\n\nx\n\nx\n\nx\n\nz\n", b"x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n", - [b'x\n\nx\n\n', - diffreplace(6, 6, b'', b'y\n\n'), - b'x\n\n', - diffreplace(9, 9, b'', b'y\n\n'), - b'x\n\nz\n']), + ( + b"x\n\nx\n\nx\n\nx\n\nz\n", + b"x\n\nx\n\ny\n\nx\n\nx\n\nz\n", + [ + b'x\n\nx\n\n', + diffreplace(6, 6, b'', b'y\n\n'), + b'x\n\nx\n\nz\n', + ], + ), + ( + b"x\n\nx\n\nx\n\nx\n\nz\n", + b"x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n", + [ + b'x\n\nx\n\n', + diffreplace(6, 6, b'', b'y\n\n'), + b'x\n\n', + diffreplace(9, 9, b'', b'y\n\n'), + b'x\n\nz\n', + ], + ), ] for old, new, want in cases: self.assertEqual(self.showdiff(old, new), want) def test_issue1295_varies_on_pure(self): - # we should pick up abbbc. rather than bc.de as the longest match - got = self.showdiff(b"a\nb\nb\nb\nc\n.\nd\ne\n.\nf\n", - b"a\nb\nb\na\nb\nb\nb\nc\n.\nb\nc\n.\nd\ne\nf\n") - want_c = [b'a\nb\nb\n', - diffreplace(6, 6, b'', b'a\nb\nb\nb\nc\n.\n'), - b'b\nc\n.\nd\ne\n', - diffreplace(16, 18, b'.\n', b''), - b'f\n'] - want_pure = [diffreplace(0, 0, b'', b'a\nb\nb\n'), - b'a\nb\nb\nb\nc\n.\n', - diffreplace(12, 12, b'', b'b\nc\n.\n'), - b'd\ne\n', - diffreplace(16, 18, b'.\n', b''), b'f\n'] - self.assertTrue(got in (want_c, want_pure), - 'got: %r, wanted either %r or %r' % ( - got, want_c, want_pure)) + # we should pick up abbbc. rather than bc.de as the longest match + got = self.showdiff( + b"a\nb\nb\nb\nc\n.\nd\ne\n.\nf\n", + b"a\nb\nb\na\nb\nb\nb\nc\n.\nb\nc\n.\nd\ne\nf\n", + ) + want_c = [ + b'a\nb\nb\n', + diffreplace(6, 6, b'', b'a\nb\nb\nb\nc\n.\n'), + b'b\nc\n.\nd\ne\n', + diffreplace(16, 18, b'.\n', b''), + b'f\n', + ] + want_pure = [ + diffreplace(0, 0, b'', b'a\nb\nb\n'), + b'a\nb\nb\nb\nc\n.\n', + diffreplace(12, 12, b'', b'b\nc\n.\n'), + b'd\ne\n', + diffreplace(16, 18, b'.\n', b''), + b'f\n', + ] + self.assertTrue( + got in (want_c, want_pure), + 'got: %r, wanted either %r or %r' % (got, want_c, want_pure), + ) def test_fixws(self): cases = [ @@ -113,39 +134,55 @@ for a, b, allws in cases: c = mdiff.fixws(a, allws) self.assertEqual( - c, b, 'fixws(%r) want %r got %r (allws=%r)' % (a, b, c, allws)) + c, b, 'fixws(%r) want %r got %r (allws=%r)' % (a, b, c, allws) + ) def test_nice_diff_for_trivial_change(self): - self.assertEqual(self.showdiff( - b''.join(b'<%d\n-\n' % i for i in range(5)), - b''.join(b'>%d\n-\n' % i for i in range(5))), - [diffreplace(0, 3, b'<0\n', b'>0\n'), - b'-\n', - diffreplace(5, 8, b'<1\n', b'>1\n'), - b'-\n', - diffreplace(10, 13, b'<2\n', b'>2\n'), - b'-\n', - diffreplace(15, 18, b'<3\n', b'>3\n'), - b'-\n', - diffreplace(20, 23, b'<4\n', b'>4\n'), - b'-\n']) + self.assertEqual( + self.showdiff( + b''.join(b'<%d\n-\n' % i for i in range(5)), + b''.join(b'>%d\n-\n' % i for i in range(5)), + ), + [ + diffreplace(0, 3, b'<0\n', b'>0\n'), + b'-\n', + diffreplace(5, 8, b'<1\n', b'>1\n'), + b'-\n', + diffreplace(10, 13, b'<2\n', b'>2\n'), + b'-\n', + diffreplace(15, 18, b'<3\n', b'>3\n'), + b'-\n', + diffreplace(20, 23, b'<4\n', b'>4\n'), + b'-\n', + ], + ) def test_prefer_appending(self): # 1 line to 3 lines - self.assertEqual(self.showdiff(b'a\n', b'a\n' * 3), - [b'a\n', diffreplace(2, 2, b'', b'a\na\n')]) + self.assertEqual( + self.showdiff(b'a\n', b'a\n' * 3), + [b'a\n', diffreplace(2, 2, b'', b'a\na\n')], + ) # 1 line to 5 lines - self.assertEqual(self.showdiff(b'a\n', b'a\n' * 5), - [b'a\n', diffreplace(2, 2, b'', b'a\na\na\na\n')]) + self.assertEqual( + self.showdiff(b'a\n', b'a\n' * 5), + [b'a\n', diffreplace(2, 2, b'', b'a\na\na\na\n')], + ) def test_prefer_removing_trailing(self): # 3 lines to 1 line - self.assertEqual(self.showdiff(b'a\n' * 3, b'a\n'), - [b'a\n', diffreplace(2, 6, b'a\na\n', b'')]) + self.assertEqual( + self.showdiff(b'a\n' * 3, b'a\n'), + [b'a\n', diffreplace(2, 6, b'a\na\n', b'')], + ) # 5 lines to 1 line - self.assertEqual(self.showdiff(b'a\n' * 5, b'a\n'), - [b'a\n', diffreplace(2, 10, b'a\na\na\na\n', b'')]) + self.assertEqual( + self.showdiff(b'a\n' * 5, b'a\n'), + [b'a\n', diffreplace(2, 10, b'a\na\na\na\n', b'')], + ) + if __name__ == '__main__': import silenttestrunner + silenttestrunner.main(__name__)