annotate tests/test-bdiff.py @ 49495:59a72267f5ce

fsmonitor: migrate Python ABCs from collections to collections.abc The Collections Abstract Base Classes in the collections module are deprecated since Python 3.3 in favor of collections.abc, and removed in Python 3.10.
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 09 Sep 2022 12:45:26 -0700
parents 6000f5b25c9b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30592
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
1 import collections
8656
284fda4cd093 removed unused imports
Martin Geisler <mg@lazybytes.net>
parents: 8449
diff changeset
2 import struct
30591
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
3 import unittest
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
4
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
5 from mercurial import mdiff
400
8b067bde6679 Add a fast binary diff extension (not yet used)
mpm@selenic.com
parents:
diff changeset
6
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
7
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
8 class diffreplace(collections.namedtuple('diffreplace', 'start end from_ to')):
30592
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
9 def __repr__(self):
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
10 return 'diffreplace(%r, %r, %r, %r)' % self
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
11
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
12
30591
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
13 class BdiffTests(unittest.TestCase):
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
14 def assert_bdiff_applies(self, a, b):
32202
ded48ad55146 bdiff: proxy through mdiff module
Yuya Nishihara <yuya@tcha.org>
parents: 30931
diff changeset
15 d = mdiff.textdiff(a, b)
30591
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
16 c = a
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
17 if d:
32203
0c73634d0570 mpatch: proxy through mdiff module
Yuya Nishihara <yuya@tcha.org>
parents: 32202
diff changeset
18 c = mdiff.patches(a, [d])
30591
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
19 self.assertEqual(
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
20 c,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
21 b,
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
22 (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
23 "bad diff+patch result from\n %r to\n "
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
24 "%r: \nbdiff: %r\npatched: %r" % (a, b, d, c[:200])
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
25 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
26 )
30591
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
27
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
28 def assert_bdiff(self, a, b):
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
29 self.assert_bdiff_applies(a, b)
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
30 self.assert_bdiff_applies(b, a)
400
8b067bde6679 Add a fast binary diff extension (not yet used)
mpm@selenic.com
parents:
diff changeset
31
30591
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
32 def test_bdiff_basic(self):
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
33 cases = [
39787
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
34 (b"a\nc\n\n\n\n", b"a\nb\n\n\n"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
35 (b"a\nb\nc\n", b"a\nc\n"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
36 (b"", b""),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
37 (b"a\nb\nc", b"a\nb\nc"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
38 (b"a\nb\nc\nd\n", b"a\nd\n"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
39 (b"a\nb\nc\nd\n", b"a\nc\ne\n"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
40 (b"a\nb\nc\n", b"a\nc\n"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
41 (b"a\n", b"c\na\nb\n"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
42 (b"a\n", b""),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
43 (b"a\n", b"b\nc\n"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
44 (b"a\n", b"c\na\n"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
45 (b"", b"adjfkjdjksdhfksj"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
46 (b"", b"ab"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
47 (b"", b"abc"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
48 (b"a", b"a"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
49 (b"ab", b"ab"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
50 (b"abc", b"abc"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
51 (b"a\n", b"a\n"),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
52 (b"a\nb", b"a\nb"),
30591
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
53 ]
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
54 for a, b in cases:
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
55 self.assert_bdiff(a, b)
400
8b067bde6679 Add a fast binary diff extension (not yet used)
mpm@selenic.com
parents:
diff changeset
56
30592
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
57 def showdiff(self, a, b):
32202
ded48ad55146 bdiff: proxy through mdiff module
Yuya Nishihara <yuya@tcha.org>
parents: 30931
diff changeset
58 bin = mdiff.textdiff(a, b)
30592
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
59 pos = 0
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
60 q = 0
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
61 actions = []
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
62 while pos < len(bin):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
63 p1, p2, l = struct.unpack(">lll", bin[pos : pos + 12])
30592
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
64 pos += 12
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
65 if p1:
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
66 actions.append(a[q:p1])
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
67 actions.append(diffreplace(p1, p2, a[p1:p2], bin[pos : pos + l]))
30592
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
68 pos += l
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
69 q = p2
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
70 if q < len(a):
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
71 actions.append(a[q:])
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
72 return actions
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
73
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
74 def test_issue1295(self):
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
75 cases = [
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
76 (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
77 b"x\n\nx\n\nx\n\nx\n\nz\n",
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
78 b"x\n\nx\n\ny\n\nx\n\nx\n\nz\n",
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
79 [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
80 b'x\n\nx\n\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
81 diffreplace(6, 6, b'', b'y\n\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
82 b'x\n\nx\n\nz\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
83 ],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
84 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
85 (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
86 b"x\n\nx\n\nx\n\nx\n\nz\n",
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
87 b"x\n\nx\n\ny\n\nx\n\ny\n\nx\n\nz\n",
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
88 [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
89 b'x\n\nx\n\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
90 diffreplace(6, 6, b'', b'y\n\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
91 b'x\n\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
92 diffreplace(9, 9, b'', b'y\n\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
93 b'x\n\nz\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
94 ],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
95 ),
30592
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
96 ]
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
97 for old, new, want in cases:
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
98 self.assertEqual(self.showdiff(old, new), want)
0d8cada9998d tests: update more of test-bdiff.py to use unittest (part 2 of 4)
Augie Fackler <augie@google.com>
parents: 30591
diff changeset
99
30595
99bd5479d58b tests: fix test-bdiff to handle variance between pure and c bdiff code
Augie Fackler <augie@google.com>
parents: 30594
diff changeset
100 def test_issue1295_varies_on_pure(self):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
101 # we should pick up abbbc. rather than bc.de as the longest match
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
102 got = self.showdiff(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
103 b"a\nb\nb\nb\nc\n.\nd\ne\n.\nf\n",
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
104 b"a\nb\nb\na\nb\nb\nb\nc\n.\nb\nc\n.\nd\ne\nf\n",
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
105 )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
106 want_c = [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
107 b'a\nb\nb\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
108 diffreplace(6, 6, b'', b'a\nb\nb\nb\nc\n.\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
109 b'b\nc\n.\nd\ne\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
110 diffreplace(16, 18, b'.\n', b''),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
111 b'f\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
112 ]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
113 want_pure = [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
114 diffreplace(0, 0, b'', b'a\nb\nb\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
115 b'a\nb\nb\nb\nc\n.\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
116 diffreplace(12, 12, b'', b'b\nc\n.\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
117 b'd\ne\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
118 diffreplace(16, 18, b'.\n', b''),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
119 b'f\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
120 ]
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
121 self.assertTrue(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
122 got in (want_c, want_pure),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
123 'got: %r, wanted either %r or %r' % (got, want_c, want_pure),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
124 )
30595
99bd5479d58b tests: fix test-bdiff to handle variance between pure and c bdiff code
Augie Fackler <augie@google.com>
parents: 30594
diff changeset
125
30593
4286015285ec tests: update more of test-bdiff.py to use unittest (part 3 of 4)
Augie Fackler <augie@google.com>
parents: 30592
diff changeset
126 def test_fixws(self):
4286015285ec tests: update more of test-bdiff.py to use unittest (part 3 of 4)
Augie Fackler <augie@google.com>
parents: 30592
diff changeset
127 cases = [
39787
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
128 (b" \ta\r b\t\n", b"ab\n", 1),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
129 (b" \ta\r b\t\n", b" a b\n", 0),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
130 (b"", b"", 1),
e05d7c71f209 py3: add b'' prefixes in tests/test-bdiff.py
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 32203
diff changeset
131 (b"", b"", 0),
30593
4286015285ec tests: update more of test-bdiff.py to use unittest (part 3 of 4)
Augie Fackler <augie@google.com>
parents: 30592
diff changeset
132 ]
4286015285ec tests: update more of test-bdiff.py to use unittest (part 3 of 4)
Augie Fackler <augie@google.com>
parents: 30592
diff changeset
133 for a, b, allws in cases:
32202
ded48ad55146 bdiff: proxy through mdiff module
Yuya Nishihara <yuya@tcha.org>
parents: 30931
diff changeset
134 c = mdiff.fixws(a, allws)
30593
4286015285ec tests: update more of test-bdiff.py to use unittest (part 3 of 4)
Augie Fackler <augie@google.com>
parents: 30592
diff changeset
135 self.assertEqual(
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
136 c, b, 'fixws(%r) want %r got %r (allws=%r)' % (a, b, c, allws)
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
137 )
30593
4286015285ec tests: update more of test-bdiff.py to use unittest (part 3 of 4)
Augie Fackler <augie@google.com>
parents: 30592
diff changeset
138
30594
ea648e8f8a34 tests: finish updating test-bdiff to unittest (part 4 of 4)
Augie Fackler <augie@google.com>
parents: 30593
diff changeset
139 def test_nice_diff_for_trivial_change(self):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
140 self.assertEqual(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
141 self.showdiff(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
142 b''.join(b'<%d\n-\n' % i for i in range(5)),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
143 b''.join(b'>%d\n-\n' % i for i in range(5)),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
144 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
145 [
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
146 diffreplace(0, 3, b'<0\n', b'>0\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
147 b'-\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
148 diffreplace(5, 8, b'<1\n', b'>1\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
149 b'-\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
150 diffreplace(10, 13, b'<2\n', b'>2\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
151 b'-\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
152 diffreplace(15, 18, b'<3\n', b'>3\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
153 b'-\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
154 diffreplace(20, 23, b'<4\n', b'>4\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
155 b'-\n',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
156 ],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
157 )
30427
ede7bc45bf0a tests: make test-bdiff.py easier to maintain
Mads Kiilerich <madski@unity3d.com>
parents: 29013
diff changeset
158
30594
ea648e8f8a34 tests: finish updating test-bdiff to unittest (part 4 of 4)
Augie Fackler <augie@google.com>
parents: 30593
diff changeset
159 def test_prefer_appending(self):
ea648e8f8a34 tests: finish updating test-bdiff to unittest (part 4 of 4)
Augie Fackler <augie@google.com>
parents: 30593
diff changeset
160 # 1 line to 3 lines
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
161 self.assertEqual(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
162 self.showdiff(b'a\n', b'a\n' * 3),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
163 [b'a\n', diffreplace(2, 2, b'', b'a\na\n')],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
164 )
30594
ea648e8f8a34 tests: finish updating test-bdiff to unittest (part 4 of 4)
Augie Fackler <augie@google.com>
parents: 30593
diff changeset
165 # 1 line to 5 lines
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
166 self.assertEqual(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
167 self.showdiff(b'a\n', b'a\n' * 5),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
168 [b'a\n', diffreplace(2, 2, b'', b'a\na\na\na\n')],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
169 )
30428
3743e5dbb824 tests: explore some bdiff cases
Mads Kiilerich <madski@unity3d.com>
parents: 30427
diff changeset
170
30594
ea648e8f8a34 tests: finish updating test-bdiff to unittest (part 4 of 4)
Augie Fackler <augie@google.com>
parents: 30593
diff changeset
171 def test_prefer_removing_trailing(self):
ea648e8f8a34 tests: finish updating test-bdiff to unittest (part 4 of 4)
Augie Fackler <augie@google.com>
parents: 30593
diff changeset
172 # 3 lines to 1 line
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
173 self.assertEqual(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
174 self.showdiff(b'a\n' * 3, b'a\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
175 [b'a\n', diffreplace(2, 6, b'a\na\n', b'')],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
176 )
30594
ea648e8f8a34 tests: finish updating test-bdiff to unittest (part 4 of 4)
Augie Fackler <augie@google.com>
parents: 30593
diff changeset
177 # 5 lines to 1 line
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
178 self.assertEqual(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
179 self.showdiff(b'a\n' * 5, b'a\n'),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
180 [b'a\n', diffreplace(2, 10, b'a\na\na\na\n', b'')],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
181 )
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
182
30591
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
183
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
184 if __name__ == '__main__':
30931
f2ad0d804700 test-bdiff: move import inside the function to avoid test failure
Pulkit Goyal <7895pulkit@gmail.com>
parents: 30595
diff changeset
185 import silenttestrunner
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 39789
diff changeset
186
30591
1b393a93a7df tests: migrate test-bdiff.py to use unittest (part 1 of 4)
Augie Fackler <augie@google.com>
parents: 30433
diff changeset
187 silenttestrunner.main(__name__)