author | Yuya Nishihara <yuya@tcha.org> |
Fri, 10 Apr 2020 21:35:16 +0900 | |
changeset 44689 | 1f5ab1a9363d |
parent 43076 | 2372284d9457 |
child 48966 | 6000f5b25c9b |
permissions | -rw-r--r-- |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
1 |
from __future__ import absolute_import |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
2 |
from __future__ import print_function |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
3 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
4 |
import unittest |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
5 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
6 |
from mercurial import ( |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
7 |
mdiff, |
37067
434e520adb8c
annotate: do not construct attr.s object per line while computing history
Yuya Nishihara <yuya@tcha.org>
parents:
36941
diff
changeset
|
8 |
pycompat, |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
9 |
) |
36923
7affcabf561e
dagop: move annotateline and _annotatepair from context.py
Yuya Nishihara <yuya@tcha.org>
parents:
35987
diff
changeset
|
10 |
from mercurial.dagop import ( |
34433
2e32c6a31cc7
annotate: introduce attr for storing per-line annotate data
Siddharth Agarwal <sid0@fb.com>
parents:
34431
diff
changeset
|
11 |
annotateline, |
37067
434e520adb8c
annotate: do not construct attr.s object per line while computing history
Yuya Nishihara <yuya@tcha.org>
parents:
36941
diff
changeset
|
12 |
_annotatedfile, |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
13 |
_annotatepair, |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
14 |
) |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
15 |
|
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
16 |
|
37067
434e520adb8c
annotate: do not construct attr.s object per line while computing history
Yuya Nishihara <yuya@tcha.org>
parents:
36941
diff
changeset
|
17 |
def tr(a): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
18 |
return [ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
19 |
annotateline(fctx, lineno, skip) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
20 |
for fctx, lineno, skip in zip(a.fctxs, a.linenos, a.skips) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
21 |
] |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
22 |
|
37067
434e520adb8c
annotate: do not construct attr.s object per line while computing history
Yuya Nishihara <yuya@tcha.org>
parents:
36941
diff
changeset
|
23 |
|
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
24 |
class AnnotateTests(unittest.TestCase): |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
25 |
"""Unit tests for annotate code.""" |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
26 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
27 |
def testannotatepair(self): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
28 |
self.maxDiff = None # camelcase-required |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
29 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
30 |
oldfctx = b'old' |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
31 |
p1fctx, p2fctx, childfctx = b'p1', b'p2', b'c' |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
32 |
olddata = b'a\nb\n' |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
33 |
p1data = b'a\nb\nc\n' |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
34 |
p2data = b'a\nc\nd\n' |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
35 |
childdata = b'a\nb2\nc\nc2\nd\n' |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
36 |
diffopts = mdiff.diffopts() |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
37 |
|
36941
ec46b0ee2e3c
annotate: correct parameter name of decorate() function
Yuya Nishihara <yuya@tcha.org>
parents:
36923
diff
changeset
|
38 |
def decorate(text, fctx): |
37067
434e520adb8c
annotate: do not construct attr.s object per line while computing history
Yuya Nishihara <yuya@tcha.org>
parents:
36941
diff
changeset
|
39 |
n = text.count(b'\n') |
434e520adb8c
annotate: do not construct attr.s object per line while computing history
Yuya Nishihara <yuya@tcha.org>
parents:
36941
diff
changeset
|
40 |
linenos = pycompat.rangelist(1, n + 1) |
434e520adb8c
annotate: do not construct attr.s object per line while computing history
Yuya Nishihara <yuya@tcha.org>
parents:
36941
diff
changeset
|
41 |
return _annotatedfile([fctx] * n, linenos, [False] * n, text) |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
42 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
43 |
# Basic usage |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
44 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
45 |
oldann = decorate(olddata, oldfctx) |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
46 |
p1ann = decorate(p1data, p1fctx) |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
47 |
p1ann = _annotatepair([oldann], p1fctx, p1ann, False, diffopts) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
48 |
self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
49 |
tr(p1ann), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
50 |
[ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
51 |
annotateline(b'old', 1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
52 |
annotateline(b'old', 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
53 |
annotateline(b'p1', 3), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
54 |
], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
55 |
) |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
56 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
57 |
p2ann = decorate(p2data, p2fctx) |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
58 |
p2ann = _annotatepair([oldann], p2fctx, p2ann, False, diffopts) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
59 |
self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
60 |
tr(p2ann), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
61 |
[ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
62 |
annotateline(b'old', 1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
63 |
annotateline(b'p2', 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
64 |
annotateline(b'p2', 3), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
65 |
], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
66 |
) |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
67 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
68 |
# Test with multiple parents (note the difference caused by ordering) |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
69 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
70 |
childann = decorate(childdata, childfctx) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
71 |
childann = _annotatepair( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
72 |
[p1ann, p2ann], childfctx, childann, False, diffopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
73 |
) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
74 |
self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
75 |
tr(childann), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
76 |
[ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
77 |
annotateline(b'old', 1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
78 |
annotateline(b'c', 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
79 |
annotateline(b'p2', 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
80 |
annotateline(b'c', 4), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
81 |
annotateline(b'p2', 3), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
82 |
], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
83 |
) |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
84 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
85 |
childann = decorate(childdata, childfctx) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
86 |
childann = _annotatepair( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
87 |
[p2ann, p1ann], childfctx, childann, False, diffopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
88 |
) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
89 |
self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
90 |
tr(childann), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
91 |
[ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
92 |
annotateline(b'old', 1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
93 |
annotateline(b'c', 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
94 |
annotateline(b'p1', 3), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
95 |
annotateline(b'c', 4), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
96 |
annotateline(b'p2', 3), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
97 |
], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
98 |
) |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
99 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
100 |
# Test with skipchild (note the difference caused by ordering) |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
101 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
102 |
childann = decorate(childdata, childfctx) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
103 |
childann = _annotatepair( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
104 |
[p1ann, p2ann], childfctx, childann, True, diffopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
105 |
) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
106 |
self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
107 |
tr(childann), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
108 |
[ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
109 |
annotateline(b'old', 1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
110 |
annotateline(b'old', 2, True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
111 |
# note that this line was carried over from earlier so it is *not* |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
112 |
# marked skipped |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
113 |
annotateline(b'p2', 2), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
114 |
annotateline(b'p2', 2, True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
115 |
annotateline(b'p2', 3), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
116 |
], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
117 |
) |
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
118 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
119 |
childann = decorate(childdata, childfctx) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
120 |
childann = _annotatepair( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
121 |
[p2ann, p1ann], childfctx, childann, True, diffopts |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
122 |
) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
123 |
self.assertEqual( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
124 |
tr(childann), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
125 |
[ |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
126 |
annotateline(b'old', 1), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
127 |
annotateline(b'old', 2, True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
128 |
annotateline(b'p1', 3), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
129 |
annotateline(b'p1', 3, True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
130 |
annotateline(b'p2', 3), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
131 |
], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
132 |
) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
133 |
|
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
134 |
|
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
135 |
if __name__ == '__main__': |
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
136 |
import silenttestrunner |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37067
diff
changeset
|
137 |
|
34431
80215865d154
annotate: move annotatepair unit tests to a separate file
Siddharth Agarwal <sid0@fb.com>
parents:
diff
changeset
|
138 |
silenttestrunner.main(__name__) |