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