##// END OF EJS Templates
tests: clean up a bunch of pager testing that is about to be invalidated...
Augie Fackler -
r30996:cc3c9b6f default
parent child Browse files
Show More
@@ -1,224 +1,166 b''
1 $ cat >> fakepager.py <<EOF
1 $ cat >> fakepager.py <<EOF
2 > import sys
2 > import sys
3 > for line in sys.stdin:
3 > for line in sys.stdin:
4 > sys.stdout.write('paged! %r\n' % line)
4 > sys.stdout.write('paged! %r\n' % line)
5 > EOF
5 > EOF
6
6
7 Enable ui.formatted because pager won't fire without it, and set up
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
8 pager and tell it to use our fake pager that lets us see when the
9 pager was running.
9 pager was running.
10 $ cat >> $HGRCPATH <<EOF
10 $ cat >> $HGRCPATH <<EOF
11 > [ui]
11 > [ui]
12 > formatted = yes
12 > formatted = yes
13 > [extensions]
13 > [extensions]
14 > pager=
14 > pager=
15 > [pager]
15 > [pager]
16 > pager = python $TESTTMP/fakepager.py
16 > pager = python $TESTTMP/fakepager.py
17 > EOF
17 > EOF
18
18
19 $ hg init repo
19 $ hg init repo
20 $ cd repo
20 $ cd repo
21 $ echo a >> a
21 $ echo a >> a
22 $ hg add a
22 $ hg add a
23 $ hg ci -m 'add a'
23 $ hg ci -m 'add a'
24 $ for x in `python $TESTDIR/seq.py 1 10`; do
24 $ for x in `python $TESTDIR/seq.py 1 10`; do
25 > echo a $x >> a
25 > echo a $x >> a
26 > hg ci -m "modify a $x"
26 > hg ci -m "modify a $x"
27 > done
27 > done
28
28
29 By default diff and log are paged, but id is not:
29 By default diff and log are paged, but id is not:
30
30
31 $ hg diff -c 2 --pager=yes
31 $ hg diff -c 2 --pager=yes
32 paged! 'diff -r f4be7687d414 -r bce265549556 a\n'
32 paged! 'diff -r f4be7687d414 -r bce265549556 a\n'
33 paged! '--- a/a\tThu Jan 01 00:00:00 1970 +0000\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'
34 paged! '+++ b/a\tThu Jan 01 00:00:00 1970 +0000\n'
35 paged! '@@ -1,2 +1,3 @@\n'
35 paged! '@@ -1,2 +1,3 @@\n'
36 paged! ' a\n'
36 paged! ' a\n'
37 paged! ' a 1\n'
37 paged! ' a 1\n'
38 paged! '+a 2\n'
38 paged! '+a 2\n'
39
39
40 $ hg log --limit 2
40 $ hg log --limit 2
41 paged! 'changeset: 10:46106edeeb38\n'
41 paged! 'changeset: 10:46106edeeb38\n'
42 paged! 'tag: tip\n'
42 paged! 'tag: tip\n'
43 paged! 'user: test\n'
43 paged! 'user: test\n'
44 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
44 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
45 paged! 'summary: modify a 10\n'
45 paged! 'summary: modify a 10\n'
46 paged! '\n'
46 paged! '\n'
47 paged! 'changeset: 9:6dd8ea7dd621\n'
47 paged! 'changeset: 9:6dd8ea7dd621\n'
48 paged! 'user: test\n'
48 paged! 'user: test\n'
49 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
49 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
50 paged! 'summary: modify a 9\n'
50 paged! 'summary: modify a 9\n'
51 paged! '\n'
51 paged! '\n'
52
52
53 $ hg id
53 $ hg id
54 46106edeeb38 tip
54 46106edeeb38 tip
55
55
56 We can enable the pager on id:
56 We can enable the pager on id:
57
57
58 $ hg --config pager.attend-id=yes id
58 $ hg --config pager.attend-id=yes id
59 paged! '46106edeeb38 tip\n'
59 paged! '46106edeeb38 tip\n'
60
60
61 If we completely change the attend list that's respected:
61 Setting attend-$COMMAND to a false value works, even with pager in
62 core:
62
63
63 $ hg --config pager.attend-diff=no diff -c 2
64 $ hg --config pager.attend-diff=no diff -c 2
64 diff -r f4be7687d414 -r bce265549556 a
65 diff -r f4be7687d414 -r bce265549556 a
65 --- a/a Thu Jan 01 00:00:00 1970 +0000
66 --- a/a Thu Jan 01 00:00:00 1970 +0000
66 +++ b/a Thu Jan 01 00:00:00 1970 +0000
67 +++ b/a Thu Jan 01 00:00:00 1970 +0000
67 @@ -1,2 +1,3 @@
68 @@ -1,2 +1,3 @@
68 a
69 a
69 a 1
70 a 1
70 +a 2
71 +a 2
71
72
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:
73 If 'log' is in attend, then 'history' should also be paged:
82 $ hg history --limit 2 --config pager.attend=log
74 $ hg history --limit 2 --config pager.attend=log
83 paged! 'changeset: 10:46106edeeb38\n'
75 paged! 'changeset: 10:46106edeeb38\n'
84 paged! 'tag: tip\n'
76 paged! 'tag: tip\n'
85 paged! 'user: test\n'
77 paged! 'user: test\n'
86 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
78 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
87 paged! 'summary: modify a 10\n'
79 paged! 'summary: modify a 10\n'
88 paged! '\n'
80 paged! '\n'
89 paged! 'changeset: 9:6dd8ea7dd621\n'
81 paged! 'changeset: 9:6dd8ea7dd621\n'
90 paged! 'user: test\n'
82 paged! 'user: test\n'
91 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
83 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
92 paged! 'summary: modify a 9\n'
84 paged! 'summary: modify a 9\n'
93 paged! '\n'
85 paged! '\n'
94
86
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
144
145 Pager should not start if stdout is not a tty.
87 Pager should not start if stdout is not a tty.
146
88
147 $ hg log -l1 -q --config ui.formatted=False
89 $ hg log -l1 -q --config ui.formatted=False
148 10:46106edeeb38
90 10:46106edeeb38
149
91
150 Pager with color enabled allows colors to come through by default,
92 Pager with color enabled allows colors to come through by default,
151 even though stdout is no longer a tty.
93 even though stdout is no longer a tty.
152 $ cat >> $HGRCPATH <<EOF
94 $ cat >> $HGRCPATH <<EOF
153 > [extensions]
95 > [extensions]
154 > color=
96 > color=
155 > [color]
97 > [color]
156 > mode = ansi
98 > mode = ansi
157 > EOF
99 > EOF
158 $ hg log --limit 3
100 $ hg log --limit 3
159 paged! '\x1b[0;33mchangeset: 10:46106edeeb38\x1b[0m\n'
101 paged! '\x1b[0;33mchangeset: 10:46106edeeb38\x1b[0m\n'
160 paged! 'tag: tip\n'
102 paged! 'tag: tip\n'
161 paged! 'user: test\n'
103 paged! 'user: test\n'
162 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
104 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
163 paged! 'summary: modify a 10\n'
105 paged! 'summary: modify a 10\n'
164 paged! '\n'
106 paged! '\n'
165 paged! '\x1b[0;33mchangeset: 9:6dd8ea7dd621\x1b[0m\n'
107 paged! '\x1b[0;33mchangeset: 9:6dd8ea7dd621\x1b[0m\n'
166 paged! 'user: test\n'
108 paged! 'user: test\n'
167 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
109 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
168 paged! 'summary: modify a 9\n'
110 paged! 'summary: modify a 9\n'
169 paged! '\n'
111 paged! '\n'
170 paged! '\x1b[0;33mchangeset: 8:cff05a6312fe\x1b[0m\n'
112 paged! '\x1b[0;33mchangeset: 8:cff05a6312fe\x1b[0m\n'
171 paged! 'user: test\n'
113 paged! 'user: test\n'
172 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
114 paged! 'date: Thu Jan 01 00:00:00 1970 +0000\n'
173 paged! 'summary: modify a 8\n'
115 paged! 'summary: modify a 8\n'
174 paged! '\n'
116 paged! '\n'
175
117
176 Pager works with shell aliases.
118 Pager works with shell aliases.
177
119
178 $ cat >> $HGRCPATH <<EOF
120 $ cat >> $HGRCPATH <<EOF
179 > [alias]
121 > [alias]
180 > echoa = !echo a
122 > echoa = !echo a
181 > EOF
123 > EOF
182
124
183 $ hg echoa
125 $ hg echoa
184 a
126 a
185 $ hg --config pager.attend-echoa=yes echoa
127 $ hg --config pager.attend-echoa=yes echoa
186 paged! 'a\n'
128 paged! 'a\n'
187
129
188 Pager works with hg aliases including environment variables.
130 Pager works with hg aliases including environment variables.
189
131
190 $ cat >> $HGRCPATH <<'EOF'
132 $ cat >> $HGRCPATH <<'EOF'
191 > [alias]
133 > [alias]
192 > printa = log -T "$A\n" -r 0
134 > printa = log -T "$A\n" -r 0
193 > EOF
135 > EOF
194
136
195 $ A=1 hg --config pager.attend-printa=yes printa
137 $ A=1 hg --config pager.attend-printa=yes printa
196 paged! '1\n'
138 paged! '1\n'
197 $ A=2 hg --config pager.attend-printa=yes printa
139 $ A=2 hg --config pager.attend-printa=yes printa
198 paged! '2\n'
140 paged! '2\n'
199
141
200 Something that's explicitly attended is still not paginated if the
142 Something that's explicitly attended is still not paginated if the
201 pager is globally set to off using a flag:
143 pager is globally set to off using a flag:
202 $ A=2 hg --config pager.attend-printa=yes printa --pager=no
144 $ A=2 hg --config pager.attend-printa=yes printa --pager=no
203 2
145 2
204
146
205 Pager should not override the exit code of other commands
147 Pager should not override the exit code of other commands
206
148
207 $ cat >> $TESTTMP/fortytwo.py <<'EOF'
149 $ cat >> $TESTTMP/fortytwo.py <<'EOF'
208 > from mercurial import cmdutil, commands
150 > from mercurial import cmdutil, commands
209 > cmdtable = {}
151 > cmdtable = {}
210 > command = cmdutil.command(cmdtable)
152 > command = cmdutil.command(cmdtable)
211 > @command('fortytwo', [], 'fortytwo', norepo=True)
153 > @command('fortytwo', [], 'fortytwo', norepo=True)
212 > def fortytwo(ui, *opts):
154 > def fortytwo(ui, *opts):
213 > ui.write('42\n')
155 > ui.write('42\n')
214 > return 42
156 > return 42
215 > EOF
157 > EOF
216
158
217 $ cat >> $HGRCPATH <<'EOF'
159 $ cat >> $HGRCPATH <<'EOF'
218 > [extensions]
160 > [extensions]
219 > fortytwo = $TESTTMP/fortytwo.py
161 > fortytwo = $TESTTMP/fortytwo.py
220 > EOF
162 > EOF
221
163
222 $ hg fortytwo --pager=on
164 $ hg fortytwo --pager=on
223 paged! '42\n'
165 paged! '42\n'
224 [42]
166 [42]
General Comments 0
You need to be logged in to leave comments. Login now