Mercurial > hg
annotate tests/test-pager.t @ 30952:85c3c879c43a
debugcommands: move 'debugrevspec' in the new module
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Thu, 02 Feb 2017 10:03:31 +0100 |
parents | b7e073ae44c4 |
children | cc3c9b6f1e09 |
rev | line source |
---|---|
28319 | 1 $ cat >> fakepager.py <<EOF |
2 > import sys | |
3 > for line in sys.stdin: | |
4 > sys.stdout.write('paged! %r\n' % line) | |
5 > EOF | |
6 | |
7 Enable ui.formatted because pager won't fire without it, and set up | |
8 pager and tell it to use our fake pager that lets us see when the | |
9 pager was running. | |
10 $ cat >> $HGRCPATH <<EOF | |
11 > [ui] | |
12 > formatted = yes | |
13 > [extensions] | |
14 > pager= | |
15 > [pager] | |
16 > pager = python $TESTTMP/fakepager.py | |
17 > EOF | |
18 | |
19 $ hg init repo | |
20 $ cd repo | |
21 $ echo a >> a | |
22 $ hg add a | |
23 $ hg ci -m 'add a' | |
24 $ for x in `python $TESTDIR/seq.py 1 10`; do | |
25 > echo a $x >> a | |
26 > hg ci -m "modify a $x" | |
27 > done | |
28 | |
30944
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
29 By default diff and log are paged, but id is not: |
28319 | 30 |
31 $ hg diff -c 2 --pager=yes | |
32 paged! 'diff -r f4be7687d414 -r bce265549556 a\n' | |
33 paged! '--- a/a\tThu Jan 01 00:00:00 1970 +0000\n' | |
34 paged! '+++ b/a\tThu Jan 01 00:00:00 1970 +0000\n' | |
35 paged! '@@ -1,2 +1,3 @@\n' | |
36 paged! ' a\n' | |
37 paged! ' a 1\n' | |
38 paged! '+a 2\n' | |
39 | |
40 $ hg log --limit 2 | |
41 paged! 'changeset: 10:46106edeeb38\n' | |
42 paged! 'tag: tip\n' | |
43 paged! 'user: test\n' | |
44 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
45 paged! 'summary: modify a 10\n' | |
46 paged! '\n' | |
47 paged! 'changeset: 9:6dd8ea7dd621\n' | |
48 paged! 'user: test\n' | |
49 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
50 paged! 'summary: modify a 9\n' | |
51 paged! '\n' | |
52 | |
30944
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
53 $ hg id |
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
54 46106edeeb38 tip |
28319 | 55 |
30944
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
56 We can enable the pager on id: |
28319 | 57 |
30944
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
58 $ hg --config pager.attend-id=yes id |
b7e073ae44c4
tests: switch "this command isn't paged" example to id
Augie Fackler <augie@google.com>
parents:
30942
diff
changeset
|
59 paged! '46106edeeb38 tip\n' |
28319 | 60 |
61 If we completely change the attend list that's respected: | |
62 | |
63 $ hg --config pager.attend-diff=no diff -c 2 | |
64 diff -r f4be7687d414 -r bce265549556 a | |
65 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
66 +++ b/a Thu Jan 01 00:00:00 1970 +0000 | |
67 @@ -1,2 +1,3 @@ | |
68 a | |
69 a 1 | |
70 +a 2 | |
71 | |
72 $ hg --config pager.attend=summary diff -c 2 | |
73 diff -r f4be7687d414 -r bce265549556 a | |
74 --- a/a Thu Jan 01 00:00:00 1970 +0000 | |
75 +++ b/a Thu Jan 01 00:00:00 1970 +0000 | |
76 @@ -1,2 +1,3 @@ | |
77 a | |
78 a 1 | |
79 +a 2 | |
80 | |
81 If 'log' is in attend, then 'history' should also be paged: | |
82 $ hg history --limit 2 --config pager.attend=log | |
83 paged! 'changeset: 10:46106edeeb38\n' | |
84 paged! 'tag: tip\n' | |
85 paged! 'user: test\n' | |
86 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
87 paged! 'summary: modify a 10\n' | |
88 paged! '\n' | |
89 paged! 'changeset: 9:6dd8ea7dd621\n' | |
90 paged! 'user: test\n' | |
91 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
92 paged! 'summary: modify a 9\n' | |
93 paged! '\n' | |
94 | |
95 Possible bug: history is explicitly ignored in pager config, but | |
96 because log is in the attend list it still gets pager treatment. | |
97 | |
98 $ hg history --limit 2 --config pager.attend=log \ | |
99 > --config pager.ignore=history | |
100 paged! 'changeset: 10:46106edeeb38\n' | |
101 paged! 'tag: tip\n' | |
102 paged! 'user: test\n' | |
103 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
104 paged! 'summary: modify a 10\n' | |
105 paged! '\n' | |
106 paged! 'changeset: 9:6dd8ea7dd621\n' | |
107 paged! 'user: test\n' | |
108 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
109 paged! 'summary: modify a 9\n' | |
110 paged! '\n' | |
111 | |
112 Possible bug: history is explicitly marked as attend-history=no, but | |
113 it doesn't fail to get paged because log is still in the attend list. | |
114 | |
115 $ hg history --limit 2 --config pager.attend-history=no | |
116 paged! 'changeset: 10:46106edeeb38\n' | |
117 paged! 'tag: tip\n' | |
118 paged! 'user: test\n' | |
119 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
120 paged! 'summary: modify a 10\n' | |
121 paged! '\n' | |
122 paged! 'changeset: 9:6dd8ea7dd621\n' | |
123 paged! 'user: test\n' | |
124 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' | |
125 paged! 'summary: modify a 9\n' | |
126 paged! '\n' | |
127 | |
128 Possible bug: disabling pager for log but enabling it for history | |
129 doesn't result in history being paged. | |
130 | |
131 $ hg history --limit 2 --config pager.attend-log=no \ | |
132 > --config pager.attend-history=yes | |
133 changeset: 10:46106edeeb38 | |
134 tag: tip | |
135 user: test | |
136 date: Thu Jan 01 00:00:00 1970 +0000 | |
137 summary: modify a 10 | |
138 | |
139 changeset: 9:6dd8ea7dd621 | |
140 user: test | |
141 date: Thu Jan 01 00:00:00 1970 +0000 | |
142 summary: modify a 9 | |
143 | |
28531
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
144 |
30847
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
145 Pager should not start if stdout is not a tty. |
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
146 |
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
147 $ hg log -l1 -q --config ui.formatted=False |
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
148 10:46106edeeb38 |
e12553cfd0a4
pager: wrap _runcommand() no matter if stdout is redirected
Yuya Nishihara <yuya@tcha.org>
parents:
29344
diff
changeset
|
149 |
28531
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
150 Pager with color enabled allows colors to come through by default, |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
151 even though stdout is no longer a tty. |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
152 $ cat >> $HGRCPATH <<EOF |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
153 > [extensions] |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
154 > color= |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
155 > [color] |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
156 > mode = ansi |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
157 > EOF |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
158 $ hg log --limit 3 |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
159 paged! '\x1b[0;33mchangeset: 10:46106edeeb38\x1b[0m\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
160 paged! 'tag: tip\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
161 paged! 'user: test\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
162 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
163 paged! 'summary: modify a 10\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
164 paged! '\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
165 paged! '\x1b[0;33mchangeset: 9:6dd8ea7dd621\x1b[0m\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
166 paged! 'user: test\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
167 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
168 paged! 'summary: modify a 9\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
169 paged! '\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
170 paged! '\x1b[0;33mchangeset: 8:cff05a6312fe\x1b[0m\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
171 paged! 'user: test\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
172 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
173 paged! 'summary: modify a 8\n' |
fe79a5821e5a
test-pager: add a test for pager with color enabled
Augie Fackler <augie@google.com>
parents:
28319
diff
changeset
|
174 paged! '\n' |
29132
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
175 |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
176 Pager works with shell aliases. |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
177 |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
178 $ cat >> $HGRCPATH <<EOF |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
179 > [alias] |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
180 > echoa = !echo a |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
181 > EOF |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
182 |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
183 $ hg echoa |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
184 a |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
185 $ hg --config pager.attend-echoa=yes echoa |
12769703d4ba
dispatch: always load extensions before running shell aliases (issue5230)
Jun Wu <quark@fb.com>
parents:
28531
diff
changeset
|
186 paged! 'a\n' |
29343
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
187 |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
188 Pager works with hg aliases including environment variables. |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
189 |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
190 $ cat >> $HGRCPATH <<'EOF' |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
191 > [alias] |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
192 > printa = log -T "$A\n" -r 0 |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
193 > EOF |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
194 |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
195 $ A=1 hg --config pager.attend-printa=yes printa |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
196 paged! '1\n' |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
197 $ A=2 hg --config pager.attend-printa=yes printa |
e095b9e753f7
tests: move chg pager test to test-pager.t
Jun Wu <quark@fb.com>
parents:
29132
diff
changeset
|
198 paged! '2\n' |
29344 | 199 |
30942
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
200 Something that's explicitly attended is still not paginated if the |
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
201 pager is globally set to off using a flag: |
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
202 $ A=2 hg --config pager.attend-printa=yes printa --pager=no |
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
203 2 |
65a3b4d67a65
pager: add a test of --pager=no functionality
Augie Fackler <augie@google.com>
parents:
30847
diff
changeset
|
204 |
29344 | 205 Pager should not override the exit code of other commands |
206 | |
207 $ cat >> $TESTTMP/fortytwo.py <<'EOF' | |
208 > from mercurial import cmdutil, commands | |
209 > cmdtable = {} | |
210 > command = cmdutil.command(cmdtable) | |
211 > @command('fortytwo', [], 'fortytwo', norepo=True) | |
212 > def fortytwo(ui, *opts): | |
213 > ui.write('42\n') | |
214 > return 42 | |
215 > EOF | |
216 | |
217 $ cat >> $HGRCPATH <<'EOF' | |
218 > [extensions] | |
219 > fortytwo = $TESTTMP/fortytwo.py | |
220 > EOF | |
221 | |
222 $ hg fortytwo --pager=on | |
223 paged! '42\n' | |
224 [42] |