##// END OF EJS Templates
tests: update test-progress to pass our import checker
Augie Fackler -
r33986:a37417e3 default
parent child Browse files
Show More
@@ -1,351 +1,352 b''
1
1
2 $ cat > loop.py <<EOF
2 $ cat > loop.py <<EOF
3 > from __future__ import absolute_import
4 > import time
3 > from mercurial import commands, registrar
5 > from mercurial import commands, registrar
4 > import time
5 >
6 >
6 > cmdtable = {}
7 > cmdtable = {}
7 > command = registrar.command(cmdtable)
8 > command = registrar.command(cmdtable)
8 >
9 >
9 > class incrementingtime(object):
10 > class incrementingtime(object):
10 > def __init__(self):
11 > def __init__(self):
11 > self._time = 0.0
12 > self._time = 0.0
12 > def __call__(self):
13 > def __call__(self):
13 > self._time += 0.25
14 > self._time += 0.25
14 > return self._time
15 > return self._time
15 > time.time = incrementingtime()
16 > time.time = incrementingtime()
16 >
17 >
17 > @command(b'loop',
18 > @command(b'loop',
18 > [('', 'total', '', 'override for total'),
19 > [('', 'total', '', 'override for total'),
19 > ('', 'nested', False, 'show nested results'),
20 > ('', 'nested', False, 'show nested results'),
20 > ('', 'parallel', False, 'show parallel sets of results')],
21 > ('', 'parallel', False, 'show parallel sets of results')],
21 > 'hg loop LOOPS',
22 > 'hg loop LOOPS',
22 > norepo=True)
23 > norepo=True)
23 > def loop(ui, loops, **opts):
24 > def loop(ui, loops, **opts):
24 > loops = int(loops)
25 > loops = int(loops)
25 > total = None
26 > total = None
26 > if loops >= 0:
27 > if loops >= 0:
27 > total = loops
28 > total = loops
28 > if opts.get('total', None):
29 > if opts.get('total', None):
29 > total = int(opts.get('total'))
30 > total = int(opts.get('total'))
30 > nested = False
31 > nested = False
31 > if opts.get('nested', None):
32 > if opts.get('nested', None):
32 > nested = True
33 > nested = True
33 > loops = abs(loops)
34 > loops = abs(loops)
34 >
35 >
35 > for i in range(loops):
36 > for i in range(loops):
36 > ui.progress(topiclabel, i, getloopitem(i), 'loopnum', total)
37 > ui.progress(topiclabel, i, getloopitem(i), 'loopnum', total)
37 > if opts.get('parallel'):
38 > if opts.get('parallel'):
38 > ui.progress('other', i, 'other.%d' % i, 'othernum', total)
39 > ui.progress('other', i, 'other.%d' % i, 'othernum', total)
39 > if nested:
40 > if nested:
40 > nested_steps = 2
41 > nested_steps = 2
41 > if i and i % 4 == 0:
42 > if i and i % 4 == 0:
42 > nested_steps = 5
43 > nested_steps = 5
43 > for j in range(nested_steps):
44 > for j in range(nested_steps):
44 > ui.progress(
45 > ui.progress(
45 > 'nested', j, 'nested.%d' % j, 'nestnum', nested_steps)
46 > 'nested', j, 'nested.%d' % j, 'nestnum', nested_steps)
46 > ui.progress(
47 > ui.progress(
47 > 'nested', None, 'nested.done', 'nestnum', nested_steps)
48 > 'nested', None, 'nested.done', 'nestnum', nested_steps)
48 > ui.progress(topiclabel, None, 'loop.done', 'loopnum', total)
49 > ui.progress(topiclabel, None, 'loop.done', 'loopnum', total)
49 >
50 >
50 > topiclabel = 'loop'
51 > topiclabel = 'loop'
51 > def getloopitem(i):
52 > def getloopitem(i):
52 > return 'loop.%d' % i
53 > return 'loop.%d' % i
53 >
54 >
54 > EOF
55 > EOF
55
56
56 $ cp $HGRCPATH $HGRCPATH.orig
57 $ cp $HGRCPATH $HGRCPATH.orig
57 $ echo "[extensions]" >> $HGRCPATH
58 $ echo "[extensions]" >> $HGRCPATH
58 $ echo "progress=" >> $HGRCPATH
59 $ echo "progress=" >> $HGRCPATH
59 $ echo "loop=`pwd`/loop.py" >> $HGRCPATH
60 $ echo "loop=`pwd`/loop.py" >> $HGRCPATH
60 $ echo "[progress]" >> $HGRCPATH
61 $ echo "[progress]" >> $HGRCPATH
61 $ echo "format = topic bar number" >> $HGRCPATH
62 $ echo "format = topic bar number" >> $HGRCPATH
62 $ echo "assume-tty=1" >> $HGRCPATH
63 $ echo "assume-tty=1" >> $HGRCPATH
63 $ echo "width=60" >> $HGRCPATH
64 $ echo "width=60" >> $HGRCPATH
64
65
65 test default params, display nothing because of delay
66 test default params, display nothing because of delay
66
67
67 $ hg -y loop 3
68 $ hg -y loop 3
68 $ echo "delay=0" >> $HGRCPATH
69 $ echo "delay=0" >> $HGRCPATH
69 $ echo "refresh=0" >> $HGRCPATH
70 $ echo "refresh=0" >> $HGRCPATH
70
71
71 test with delay=0, refresh=0
72 test with delay=0, refresh=0
72
73
73 $ hg -y loop 3
74 $ hg -y loop 3
74 \r (no-eol) (esc)
75 \r (no-eol) (esc)
75 loop [ ] 0/3\r (no-eol) (esc)
76 loop [ ] 0/3\r (no-eol) (esc)
76 loop [===============> ] 1/3\r (no-eol) (esc)
77 loop [===============> ] 1/3\r (no-eol) (esc)
77 loop [===============================> ] 2/3\r (no-eol) (esc)
78 loop [===============================> ] 2/3\r (no-eol) (esc)
78 \r (no-eol) (esc)
79 \r (no-eol) (esc)
79 no progress with --quiet
80 no progress with --quiet
80 $ hg -y loop 3 --quiet
81 $ hg -y loop 3 --quiet
81
82
82 test plain mode exception
83 test plain mode exception
83 $ HGPLAINEXCEPT=progress hg -y loop 1
84 $ HGPLAINEXCEPT=progress hg -y loop 1
84 \r (no-eol) (esc)
85 \r (no-eol) (esc)
85 loop [ ] 0/1\r (no-eol) (esc)
86 loop [ ] 0/1\r (no-eol) (esc)
86 \r (no-eol) (esc)
87 \r (no-eol) (esc)
87
88
88 test nested short-lived topics (which shouldn't display with nestdelay):
89 test nested short-lived topics (which shouldn't display with nestdelay):
89
90
90 $ hg -y loop 3 --nested
91 $ hg -y loop 3 --nested
91 \r (no-eol) (esc)
92 \r (no-eol) (esc)
92 loop [ ] 0/3\r (no-eol) (esc)
93 loop [ ] 0/3\r (no-eol) (esc)
93 loop [===============> ] 1/3\r (no-eol) (esc)
94 loop [===============> ] 1/3\r (no-eol) (esc)
94 loop [===============================> ] 2/3\r (no-eol) (esc)
95 loop [===============================> ] 2/3\r (no-eol) (esc)
95 \r (no-eol) (esc)
96 \r (no-eol) (esc)
96
97
97 Test nested long-lived topic which has the same name as a short-lived
98 Test nested long-lived topic which has the same name as a short-lived
98 peer. We shouldn't get stuck showing the short-lived inner steps, and
99 peer. We shouldn't get stuck showing the short-lived inner steps, and
99 should go back to skipping the inner steps when the slow nested step
100 should go back to skipping the inner steps when the slow nested step
100 finishes.
101 finishes.
101
102
102 $ hg -y loop 7 --nested
103 $ hg -y loop 7 --nested
103 \r (no-eol) (esc)
104 \r (no-eol) (esc)
104 loop [ ] 0/7\r (no-eol) (esc)
105 loop [ ] 0/7\r (no-eol) (esc)
105 loop [=====> ] 1/7\r (no-eol) (esc)
106 loop [=====> ] 1/7\r (no-eol) (esc)
106 loop [============> ] 2/7\r (no-eol) (esc)
107 loop [============> ] 2/7\r (no-eol) (esc)
107 loop [===================> ] 3/7\r (no-eol) (esc)
108 loop [===================> ] 3/7\r (no-eol) (esc)
108 loop [==========================> ] 4/7\r (no-eol) (esc)
109 loop [==========================> ] 4/7\r (no-eol) (esc)
109 nested [==========================> ] 3/5\r (no-eol) (esc)
110 nested [==========================> ] 3/5\r (no-eol) (esc)
110 nested [===================================> ] 4/5\r (no-eol) (esc)
111 nested [===================================> ] 4/5\r (no-eol) (esc)
111 loop [=================================> ] 5/7\r (no-eol) (esc)
112 loop [=================================> ] 5/7\r (no-eol) (esc)
112 loop [========================================> ] 6/7\r (no-eol) (esc)
113 loop [========================================> ] 6/7\r (no-eol) (esc)
113 \r (no-eol) (esc)
114 \r (no-eol) (esc)
114
115
115
116
116 $ hg --config progress.changedelay=0 -y loop 3 --nested
117 $ hg --config progress.changedelay=0 -y loop 3 --nested
117 \r (no-eol) (esc)
118 \r (no-eol) (esc)
118 loop [ ] 0/3\r (no-eol) (esc)
119 loop [ ] 0/3\r (no-eol) (esc)
119 nested [ ] 0/2\r (no-eol) (esc)
120 nested [ ] 0/2\r (no-eol) (esc)
120 nested [======================> ] 1/2\r (no-eol) (esc)
121 nested [======================> ] 1/2\r (no-eol) (esc)
121 loop [===============> ] 1/3\r (no-eol) (esc)
122 loop [===============> ] 1/3\r (no-eol) (esc)
122 nested [ ] 0/2\r (no-eol) (esc)
123 nested [ ] 0/2\r (no-eol) (esc)
123 nested [======================> ] 1/2\r (no-eol) (esc)
124 nested [======================> ] 1/2\r (no-eol) (esc)
124 loop [===============================> ] 2/3\r (no-eol) (esc)
125 loop [===============================> ] 2/3\r (no-eol) (esc)
125 nested [ ] 0/2\r (no-eol) (esc)
126 nested [ ] 0/2\r (no-eol) (esc)
126 nested [======================> ] 1/2\r (no-eol) (esc)
127 nested [======================> ] 1/2\r (no-eol) (esc)
127 \r (no-eol) (esc)
128 \r (no-eol) (esc)
128
129
129
130
130 test two topics being printed in parallel (as when we're doing a local
131 test two topics being printed in parallel (as when we're doing a local
131 --pull clone, where you get the unbundle and bundle progress at the
132 --pull clone, where you get the unbundle and bundle progress at the
132 same time):
133 same time):
133 $ hg loop 3 --parallel
134 $ hg loop 3 --parallel
134 \r (no-eol) (esc)
135 \r (no-eol) (esc)
135 loop [ ] 0/3\r (no-eol) (esc)
136 loop [ ] 0/3\r (no-eol) (esc)
136 loop [===============> ] 1/3\r (no-eol) (esc)
137 loop [===============> ] 1/3\r (no-eol) (esc)
137 loop [===============================> ] 2/3\r (no-eol) (esc)
138 loop [===============================> ] 2/3\r (no-eol) (esc)
138 \r (no-eol) (esc)
139 \r (no-eol) (esc)
139 test refresh is taken in account
140 test refresh is taken in account
140
141
141 $ hg -y --config progress.refresh=100 loop 3
142 $ hg -y --config progress.refresh=100 loop 3
142
143
143 test format options 1
144 test format options 1
144
145
145 $ hg -y --config 'progress.format=number topic item+2' loop 2
146 $ hg -y --config 'progress.format=number topic item+2' loop 2
146 \r (no-eol) (esc)
147 \r (no-eol) (esc)
147 0/2 loop lo\r (no-eol) (esc)
148 0/2 loop lo\r (no-eol) (esc)
148 1/2 loop lo\r (no-eol) (esc)
149 1/2 loop lo\r (no-eol) (esc)
149 \r (no-eol) (esc)
150 \r (no-eol) (esc)
150
151
151 test format options 2
152 test format options 2
152
153
153 $ hg -y --config 'progress.format=number item-3 bar' loop 2
154 $ hg -y --config 'progress.format=number item-3 bar' loop 2
154 \r (no-eol) (esc)
155 \r (no-eol) (esc)
155 0/2 p.0 [ ]\r (no-eol) (esc)
156 0/2 p.0 [ ]\r (no-eol) (esc)
156 1/2 p.1 [=======================> ]\r (no-eol) (esc)
157 1/2 p.1 [=======================> ]\r (no-eol) (esc)
157 \r (no-eol) (esc)
158 \r (no-eol) (esc)
158
159
159 test format options and indeterminate progress
160 test format options and indeterminate progress
160
161
161 $ hg -y --config 'progress.format=number item bar' loop -- -2
162 $ hg -y --config 'progress.format=number item bar' loop -- -2
162 \r (no-eol) (esc)
163 \r (no-eol) (esc)
163 0 loop.0 [ <=> ]\r (no-eol) (esc)
164 0 loop.0 [ <=> ]\r (no-eol) (esc)
164 1 loop.1 [ <=> ]\r (no-eol) (esc)
165 1 loop.1 [ <=> ]\r (no-eol) (esc)
165 \r (no-eol) (esc)
166 \r (no-eol) (esc)
166
167
167 make sure things don't fall over if count > total
168 make sure things don't fall over if count > total
168
169
169 $ hg -y loop --total 4 6
170 $ hg -y loop --total 4 6
170 \r (no-eol) (esc)
171 \r (no-eol) (esc)
171 loop [ ] 0/4\r (no-eol) (esc)
172 loop [ ] 0/4\r (no-eol) (esc)
172 loop [===========> ] 1/4\r (no-eol) (esc)
173 loop [===========> ] 1/4\r (no-eol) (esc)
173 loop [=======================> ] 2/4\r (no-eol) (esc)
174 loop [=======================> ] 2/4\r (no-eol) (esc)
174 loop [===================================> ] 3/4\r (no-eol) (esc)
175 loop [===================================> ] 3/4\r (no-eol) (esc)
175 loop [===============================================>] 4/4\r (no-eol) (esc)
176 loop [===============================================>] 4/4\r (no-eol) (esc)
176 loop [ <=> ] 5/4\r (no-eol) (esc)
177 loop [ <=> ] 5/4\r (no-eol) (esc)
177 \r (no-eol) (esc)
178 \r (no-eol) (esc)
178
179
179 test immediate progress completion
180 test immediate progress completion
180
181
181 $ hg -y loop 0
182 $ hg -y loop 0
182
183
183 test delay time estimates
184 test delay time estimates
184
185
185 #if no-chg
186 #if no-chg
186
187
187 $ cat > mocktime.py <<EOF
188 $ cat > mocktime.py <<EOF
188 > import os
189 > import os
189 > import time
190 > import time
190 >
191 >
191 > class mocktime(object):
192 > class mocktime(object):
192 > def __init__(self, increment):
193 > def __init__(self, increment):
193 > self.time = 0
194 > self.time = 0
194 > self.increment = increment
195 > self.increment = increment
195 > def __call__(self):
196 > def __call__(self):
196 > self.time += self.increment
197 > self.time += self.increment
197 > return self.time
198 > return self.time
198 >
199 >
199 > def uisetup(ui):
200 > def uisetup(ui):
200 > time.time = mocktime(int(os.environ.get('MOCKTIME', '11')))
201 > time.time = mocktime(int(os.environ.get('MOCKTIME', '11')))
201 > EOF
202 > EOF
202
203
203 $ cp $HGRCPATH.orig $HGRCPATH
204 $ cp $HGRCPATH.orig $HGRCPATH
204 $ echo "[extensions]" >> $HGRCPATH
205 $ echo "[extensions]" >> $HGRCPATH
205 $ echo "mocktime=`pwd`/mocktime.py" >> $HGRCPATH
206 $ echo "mocktime=`pwd`/mocktime.py" >> $HGRCPATH
206 $ echo "progress=" >> $HGRCPATH
207 $ echo "progress=" >> $HGRCPATH
207 $ echo "loop=`pwd`/loop.py" >> $HGRCPATH
208 $ echo "loop=`pwd`/loop.py" >> $HGRCPATH
208 $ echo "[progress]" >> $HGRCPATH
209 $ echo "[progress]" >> $HGRCPATH
209 $ echo "assume-tty=1" >> $HGRCPATH
210 $ echo "assume-tty=1" >> $HGRCPATH
210 $ echo "delay=25" >> $HGRCPATH
211 $ echo "delay=25" >> $HGRCPATH
211 $ echo "width=60" >> $HGRCPATH
212 $ echo "width=60" >> $HGRCPATH
212
213
213 $ hg -y loop 8
214 $ hg -y loop 8
214 \r (no-eol) (esc)
215 \r (no-eol) (esc)
215 loop [=========> ] 2/8 1m07s\r (no-eol) (esc)
216 loop [=========> ] 2/8 1m07s\r (no-eol) (esc)
216 loop [===============> ] 3/8 56s\r (no-eol) (esc)
217 loop [===============> ] 3/8 56s\r (no-eol) (esc)
217 loop [=====================> ] 4/8 45s\r (no-eol) (esc)
218 loop [=====================> ] 4/8 45s\r (no-eol) (esc)
218 loop [==========================> ] 5/8 34s\r (no-eol) (esc)
219 loop [==========================> ] 5/8 34s\r (no-eol) (esc)
219 loop [================================> ] 6/8 23s\r (no-eol) (esc)
220 loop [================================> ] 6/8 23s\r (no-eol) (esc)
220 loop [=====================================> ] 7/8 12s\r (no-eol) (esc)
221 loop [=====================================> ] 7/8 12s\r (no-eol) (esc)
221 \r (no-eol) (esc)
222 \r (no-eol) (esc)
222
223
223 $ MOCKTIME=10000 hg -y loop 4
224 $ MOCKTIME=10000 hg -y loop 4
224 \r (no-eol) (esc)
225 \r (no-eol) (esc)
225 loop [ ] 0/4\r (no-eol) (esc)
226 loop [ ] 0/4\r (no-eol) (esc)
226 loop [=========> ] 1/4 8h21m\r (no-eol) (esc)
227 loop [=========> ] 1/4 8h21m\r (no-eol) (esc)
227 loop [====================> ] 2/4 5h34m\r (no-eol) (esc)
228 loop [====================> ] 2/4 5h34m\r (no-eol) (esc)
228 loop [==============================> ] 3/4 2h47m\r (no-eol) (esc)
229 loop [==============================> ] 3/4 2h47m\r (no-eol) (esc)
229 \r (no-eol) (esc)
230 \r (no-eol) (esc)
230
231
231 $ MOCKTIME=1000000 hg -y loop 4
232 $ MOCKTIME=1000000 hg -y loop 4
232 \r (no-eol) (esc)
233 \r (no-eol) (esc)
233 loop [ ] 0/4\r (no-eol) (esc)
234 loop [ ] 0/4\r (no-eol) (esc)
234 loop [=========> ] 1/4 5w00d\r (no-eol) (esc)
235 loop [=========> ] 1/4 5w00d\r (no-eol) (esc)
235 loop [====================> ] 2/4 3w03d\r (no-eol) (esc)
236 loop [====================> ] 2/4 3w03d\r (no-eol) (esc)
236 loop [=============================> ] 3/4 11d14h\r (no-eol) (esc)
237 loop [=============================> ] 3/4 11d14h\r (no-eol) (esc)
237 \r (no-eol) (esc)
238 \r (no-eol) (esc)
238
239
239
240
240 $ MOCKTIME=14000000 hg -y loop 4
241 $ MOCKTIME=14000000 hg -y loop 4
241 \r (no-eol) (esc)
242 \r (no-eol) (esc)
242 loop [ ] 0/4\r (no-eol) (esc)
243 loop [ ] 0/4\r (no-eol) (esc)
243 loop [=========> ] 1/4 1y18w\r (no-eol) (esc)
244 loop [=========> ] 1/4 1y18w\r (no-eol) (esc)
244 loop [===================> ] 2/4 46w03d\r (no-eol) (esc)
245 loop [===================> ] 2/4 46w03d\r (no-eol) (esc)
245 loop [=============================> ] 3/4 23w02d\r (no-eol) (esc)
246 loop [=============================> ] 3/4 23w02d\r (no-eol) (esc)
246 \r (no-eol) (esc)
247 \r (no-eol) (esc)
247
248
248 Time estimates should not fail when there's no end point:
249 Time estimates should not fail when there's no end point:
249 $ hg -y loop -- -4
250 $ hg -y loop -- -4
250 \r (no-eol) (esc)
251 \r (no-eol) (esc)
251 loop [ <=> ] 2\r (no-eol) (esc)
252 loop [ <=> ] 2\r (no-eol) (esc)
252 loop [ <=> ] 3\r (no-eol) (esc)
253 loop [ <=> ] 3\r (no-eol) (esc)
253 \r (no-eol) (esc)
254 \r (no-eol) (esc)
254
255
255 #endif
256 #endif
256
257
257 test line trimming by '[progress] width', when progress topic contains
258 test line trimming by '[progress] width', when progress topic contains
258 multi-byte characters, of which length of byte sequence and columns in
259 multi-byte characters, of which length of byte sequence and columns in
259 display are different from each other.
260 display are different from each other.
260
261
261 $ cp $HGRCPATH.orig $HGRCPATH
262 $ cp $HGRCPATH.orig $HGRCPATH
262 $ cat >> $HGRCPATH <<EOF
263 $ cat >> $HGRCPATH <<EOF
263 > [extensions]
264 > [extensions]
264 > progress=
265 > progress=
265 > loop=`pwd`/loop.py
266 > loop=`pwd`/loop.py
266 > [progress]
267 > [progress]
267 > assume-tty = 1
268 > assume-tty = 1
268 > delay = 0
269 > delay = 0
269 > refresh = 0
270 > refresh = 0
270 > EOF
271 > EOF
271
272
272 $ rm -f loop.pyc
273 $ rm -f loop.pyc
273 $ cat >> loop.py <<EOF
274 $ cat >> loop.py <<EOF
274 > # use non-ascii characters as topic label of progress
275 > # use non-ascii characters as topic label of progress
275 > # 2 x 4 = 8 columns, but 3 x 4 = 12 bytes
276 > # 2 x 4 = 8 columns, but 3 x 4 = 12 bytes
276 > topiclabel = u'\u3042\u3044\u3046\u3048'.encode('utf-8')
277 > topiclabel = u'\u3042\u3044\u3046\u3048'.encode('utf-8')
277 > EOF
278 > EOF
278
279
279 $ cat >> $HGRCPATH <<EOF
280 $ cat >> $HGRCPATH <<EOF
280 > [progress]
281 > [progress]
281 > format = topic number
282 > format = topic number
282 > width= 12
283 > width= 12
283 > EOF
284 > EOF
284
285
285 $ hg --encoding utf-8 -y loop --total 3 3
286 $ hg --encoding utf-8 -y loop --total 3 3
286 \r (no-eol) (esc)
287 \r (no-eol) (esc)
287 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 0/3\r (no-eol) (esc)
288 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 0/3\r (no-eol) (esc)
288 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 1/3\r (no-eol) (esc)
289 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 1/3\r (no-eol) (esc)
289 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 2/3\r (no-eol) (esc)
290 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 2/3\r (no-eol) (esc)
290 \r (no-eol) (esc)
291 \r (no-eol) (esc)
291
292
292 test calculation of bar width, when progress topic contains multi-byte
293 test calculation of bar width, when progress topic contains multi-byte
293 characters, of which length of byte sequence and columns in display
294 characters, of which length of byte sequence and columns in display
294 are different from each other.
295 are different from each other.
295
296
296 $ cat >> $HGRCPATH <<EOF
297 $ cat >> $HGRCPATH <<EOF
297 > [progress]
298 > [progress]
298 > format = topic bar
299 > format = topic bar
299 > width= 21
300 > width= 21
300 > # progwidth should be 9 (= 21 - (8+1) - 3)
301 > # progwidth should be 9 (= 21 - (8+1) - 3)
301 > EOF
302 > EOF
302
303
303 $ hg --encoding utf-8 -y loop --total 3 3
304 $ hg --encoding utf-8 -y loop --total 3 3
304 \r (no-eol) (esc)
305 \r (no-eol) (esc)
305 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 [ ]\r (no-eol) (esc)
306 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 [ ]\r (no-eol) (esc)
306 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 [==> ]\r (no-eol) (esc)
307 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 [==> ]\r (no-eol) (esc)
307 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 [=====> ]\r (no-eol) (esc)
308 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\xe3\x81\x88 [=====> ]\r (no-eol) (esc)
308 \r (no-eol) (esc)
309 \r (no-eol) (esc)
309
310
310 test trimming progress items, when they contain multi-byte characters,
311 test trimming progress items, when they contain multi-byte characters,
311 of which length of byte sequence and columns in display are different
312 of which length of byte sequence and columns in display are different
312 from each other.
313 from each other.
313
314
314 $ rm -f loop.pyc
315 $ rm -f loop.pyc
315 $ rm -Rf __pycache__
316 $ rm -Rf __pycache__
316 $ cat >> loop.py <<EOF
317 $ cat >> loop.py <<EOF
317 > # use non-ascii characters as loop items of progress
318 > # use non-ascii characters as loop items of progress
318 > loopitems = [
319 > loopitems = [
319 > u'\u3042\u3044'.encode('utf-8'), # 2 x 2 = 4 columns
320 > u'\u3042\u3044'.encode('utf-8'), # 2 x 2 = 4 columns
320 > u'\u3042\u3044\u3046'.encode('utf-8'), # 2 x 3 = 6 columns
321 > u'\u3042\u3044\u3046'.encode('utf-8'), # 2 x 3 = 6 columns
321 > u'\u3042\u3044\u3046\u3048'.encode('utf-8'), # 2 x 4 = 8 columns
322 > u'\u3042\u3044\u3046\u3048'.encode('utf-8'), # 2 x 4 = 8 columns
322 > ]
323 > ]
323 > def getloopitem(i):
324 > def getloopitem(i):
324 > return loopitems[i % len(loopitems)]
325 > return loopitems[i % len(loopitems)]
325 > EOF
326 > EOF
326
327
327 $ cat >> $HGRCPATH <<EOF
328 $ cat >> $HGRCPATH <<EOF
328 > [progress]
329 > [progress]
329 > # trim at tail side
330 > # trim at tail side
330 > format = item+6
331 > format = item+6
331 > EOF
332 > EOF
332
333
333 $ hg --encoding utf-8 -y loop --total 3 3
334 $ hg --encoding utf-8 -y loop --total 3 3
334 \r (no-eol) (esc)
335 \r (no-eol) (esc)
335 \xe3\x81\x82\xe3\x81\x84 \r (no-eol) (esc)
336 \xe3\x81\x82\xe3\x81\x84 \r (no-eol) (esc)
336 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\r (no-eol) (esc)
337 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\r (no-eol) (esc)
337 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\r (no-eol) (esc)
338 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\r (no-eol) (esc)
338 \r (no-eol) (esc)
339 \r (no-eol) (esc)
339
340
340 $ cat >> $HGRCPATH <<EOF
341 $ cat >> $HGRCPATH <<EOF
341 > [progress]
342 > [progress]
342 > # trim at left side
343 > # trim at left side
343 > format = item-6
344 > format = item-6
344 > EOF
345 > EOF
345
346
346 $ hg --encoding utf-8 -y loop --total 3 3
347 $ hg --encoding utf-8 -y loop --total 3 3
347 \r (no-eol) (esc)
348 \r (no-eol) (esc)
348 \xe3\x81\x82\xe3\x81\x84 \r (no-eol) (esc)
349 \xe3\x81\x82\xe3\x81\x84 \r (no-eol) (esc)
349 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\r (no-eol) (esc)
350 \xe3\x81\x82\xe3\x81\x84\xe3\x81\x86\r (no-eol) (esc)
350 \xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\r (no-eol) (esc)
351 \xe3\x81\x84\xe3\x81\x86\xe3\x81\x88\r (no-eol) (esc)
351 \r (no-eol) (esc)
352 \r (no-eol) (esc)
General Comments 0
You need to be logged in to leave comments. Login now