Mercurial > hg
annotate tests/test-bdiff.py @ 52282:51a350a22d0c
branching: merge stable into default
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 20 Nov 2024 15:53:19 +0100 |
parents | 6000f5b25c9b |
children |
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 | 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__) |