Mercurial > vim
annotate src/testdir/test86.in @ 4833:70b1178dec79 v7.3.1163
updated for version 7.3.1163
Problem: Not easy to load Python modules.
Solution: Search "python2", "python3" and "pythonx" directories in
'runtimepath' for Python modules. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Mon, 10 Jun 2013 21:27:29 +0200 |
parents | bf917ee1fad2 |
children | d59ff2114733 |
rev | line source |
---|---|
3618 | 1 Tests for various python features. vim: set ft=vim : |
2 | |
4149 | 3 NOTE: This will cause errors when run under valgrind. |
4 This would require recompiling Python with: | |
5 ./configure --without-pymalloc | |
6 See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup | |
7 | |
3618 | 8 STARTTEST |
9 :so small.vim | |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
10 :set encoding=latin1 |
3618 | 11 :if !has('python') | e! test.ok | wq! test.out | endif |
4425 | 12 :lang C |
3618 | 13 :py import vim |
14 :fun Test() | |
15 :let l = [] | |
16 :py l=vim.bindeval('l') | |
17 :py f=vim.bindeval('function("strlen")') | |
18 :" Extending List directly with different types | |
19 :py l.extend([1, "as'd", [1, 2, f, {'a': 1}]]) | |
20 :$put =string(l) | |
21 :$put =string(l[-1]) | |
22 :try | |
23 : $put =string(l[-4]) | |
24 :catch | |
25 : $put =v:exception[:13] | |
26 :endtry | |
27 :" List assignment | |
28 :py l[0]=0 | |
29 :$put =string(l) | |
30 :py l[-2]=f | |
31 :$put =string(l) | |
32 :" | |
33 :" Extending Dictionary directly with different types | |
34 :let d = {} | |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
35 :fun d.f() |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
36 : return 1 |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
37 :endfun |
4627
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
38 py << EOF |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
39 d=vim.bindeval('d') |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
40 d['1']='asd' |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
41 d.update(b=[1, 2, f]) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
42 d.update((('-1', {'a': 1}),)) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
43 d.update({'0': -1}) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
44 dk = d.keys() |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
45 dv = d.values() |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
46 di = d.items() |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
47 dk.sort(key=repr) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
48 dv.sort(key=repr) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
49 di.sort(key=repr) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
50 EOF |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
51 :$put =pyeval('d[''f''](self={})') |
4627
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
52 :$put =pyeval('repr(dk)') |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
53 :$put =substitute(pyeval('repr(dv)'),'0x\x\+','','g') |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
54 :$put =substitute(pyeval('repr(di)'),'0x\x\+','','g') |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
55 :for [key, Val] in sort(items(d)) |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
56 : $put =string(key) . ' : ' . string(Val) |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
57 : unlet key Val |
3618 | 58 :endfor |
59 :" | |
60 :" removing items with del | |
61 :py del l[2] | |
62 :$put =string(l) | |
63 :let l = range(8) | |
64 :py l=vim.bindeval('l') | |
65 :try | |
66 : py del l[:3] | |
67 : py del l[1:] | |
68 :catch | |
69 : $put =v:exception | |
70 :endtry | |
71 :$put =string(l) | |
72 :" | |
73 :py del d['-1'] | |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
74 :py del d['f'] |
4627
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
75 :$put =string(pyeval('d.get(''b'', 1)')) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
76 :$put =string(pyeval('d.pop(''b'')')) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
77 :$put =string(pyeval('d.get(''b'', 1)')) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
78 :$put =string(pyeval('d.pop(''1'', 2)')) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
79 :$put =string(pyeval('d.pop(''1'', 2)')) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
80 :$put =pyeval('repr(d.has_key(''0''))') |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
81 :$put =pyeval('repr(d.has_key(''1''))') |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
82 :$put =pyeval('repr(''0'' in d)') |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
83 :$put =pyeval('repr(''1'' in d)') |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
84 :$put =pyeval('repr(list(iter(d)))') |
3618 | 85 :$put =string(d) |
4698
2db005052371
updated for version 7.3.1096
Bram Moolenaar <bram@vim.org>
parents:
4684
diff
changeset
|
86 :$put =pyeval('repr(d.popitem())') |
4627
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
87 :$put =pyeval('repr(d.get(''0''))') |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
88 :$put =pyeval('repr(list(iter(d)))') |
3618 | 89 :" |
90 :" removing items out of range: silently skip items that don't exist | |
91 :let l = [0, 1, 2, 3] | |
92 :py l=vim.bindeval('l') | |
93 :" The following two ranges delete nothing as they match empty list: | |
94 :py del l[2:1] | |
95 :$put =string(l) | |
96 :py del l[2:2] | |
97 :$put =string(l) | |
98 :py del l[2:3] | |
99 :$put =string(l) | |
100 :let l = [0, 1, 2, 3] | |
101 :py l=vim.bindeval('l') | |
102 :py del l[2:4] | |
103 :$put =string(l) | |
104 :let l = [0, 1, 2, 3] | |
105 :py l=vim.bindeval('l') | |
106 :py del l[2:5] | |
107 :$put =string(l) | |
108 :let l = [0, 1, 2, 3] | |
109 :py l=vim.bindeval('l') | |
110 :py del l[2:6] | |
111 :$put =string(l) | |
112 :let l = [0, 1, 2, 3] | |
113 :py l=vim.bindeval('l') | |
114 :" The following two ranges delete nothing as they match empty list: | |
115 :py del l[-1:2] | |
116 :$put =string(l) | |
117 :py del l[-2:2] | |
118 :$put =string(l) | |
119 :py del l[-3:2] | |
120 :$put =string(l) | |
121 :let l = [0, 1, 2, 3] | |
122 :py l=vim.bindeval('l') | |
123 :py del l[-4:2] | |
124 :$put =string(l) | |
125 :let l = [0, 1, 2, 3] | |
126 :py l=vim.bindeval('l') | |
127 :py del l[-5:2] | |
128 :$put =string(l) | |
129 :let l = [0, 1, 2, 3] | |
130 :py l=vim.bindeval('l') | |
131 :py del l[-6:2] | |
132 :$put =string(l) | |
133 :" | |
134 :" Slice assignment to a list | |
135 :let l = [0, 1, 2, 3] | |
136 :py l=vim.bindeval('l') | |
137 :py l[0:0]=['a'] | |
138 :$put =string(l) | |
139 :let l = [0, 1, 2, 3] | |
140 :py l=vim.bindeval('l') | |
141 :py l[1:2]=['b'] | |
142 :$put =string(l) | |
143 :let l = [0, 1, 2, 3] | |
144 :py l=vim.bindeval('l') | |
145 :py l[2:4]=['c'] | |
146 :$put =string(l) | |
147 :let l = [0, 1, 2, 3] | |
148 :py l=vim.bindeval('l') | |
149 :py l[4:4]=['d'] | |
150 :$put =string(l) | |
151 :let l = [0, 1, 2, 3] | |
152 :py l=vim.bindeval('l') | |
153 :py l[-1:2]=['e'] | |
154 :$put =string(l) | |
155 :let l = [0, 1, 2, 3] | |
156 :py l=vim.bindeval('l') | |
157 :py l[-10:2]=['f'] | |
158 :$put =string(l) | |
159 :let l = [0, 1, 2, 3] | |
160 :py l=vim.bindeval('l') | |
161 :py l[2:-10]=['g'] | |
162 :$put =string(l) | |
163 :let l = [] | |
164 :py l=vim.bindeval('l') | |
165 :py l[0:0]=['h'] | |
166 :$put =string(l) | |
167 :" | |
168 :" Locked variables | |
169 :let l = [0, 1, 2, 3] | |
170 :py l=vim.bindeval('l') | |
171 :lockvar! l | |
172 :py l[2]='i' | |
173 :$put =string(l) | |
174 :unlockvar! l | |
175 :" | |
176 :" Function calls | |
177 :function New(...) | |
178 :return ['NewStart']+a:000+['NewEnd'] | |
179 :endfunction | |
180 :function DictNew(...) dict | |
181 :return ['DictNewStart']+a:000+['DictNewEnd', self] | |
182 :endfunction | |
183 :let l=[function('New'), function('DictNew')] | |
184 :py l=vim.bindeval('l') | |
185 :py l.extend(list(l[0](1, 2, 3))) | |
186 :$put =string(l) | |
187 :py l.extend(list(l[1](1, 2, 3, self={'a': 'b'}))) | |
188 :$put =string(l) | |
189 :py l.extend([l[0].name]) | |
190 :$put =string(l) | |
191 :try | |
192 : py l[1](1, 2, 3) | |
193 :catch | |
194 : $put =v:exception[:16] | |
195 :endtry | |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
196 :py f=l[0] |
3618 | 197 :delfunction New |
198 :try | |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
199 : py f(1, 2, 3) |
3618 | 200 :catch |
201 : $put =v:exception[:16] | |
202 :endtry | |
203 :if has('float') | |
204 : let l=[0.0] | |
205 : py l=vim.bindeval('l') | |
206 : py l.extend([0.0]) | |
207 : $put =string(l) | |
208 :else | |
209 : $put ='[0.0, 0.0]' | |
210 :endif | |
3802 | 211 :let messages=[] |
4399 | 212 py <<EOF |
3802 | 213 d=vim.bindeval('{}') |
214 m=vim.bindeval('messages') | |
4399 | 215 def em(expr, g=globals(), l=locals()): |
216 try: | |
217 exec(expr, g, l) | |
218 except: | |
219 m.extend([sys.exc_type.__name__]) | |
3802 | 220 |
4399 | 221 em('d["abc"]') |
222 em('d["abc"]="\\0"') | |
223 em('d["abc"]=vim') | |
224 em('d[""]=1') | |
225 em('d["a\\0b"]=1') | |
226 em('d[u"a\\0b"]=1') | |
4627
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
227 |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
228 em('d.pop("abc")') |
4698
2db005052371
updated for version 7.3.1096
Bram Moolenaar <bram@vim.org>
parents:
4684
diff
changeset
|
229 em('d.popitem()') |
3802 | 230 EOF |
231 :$put =messages | |
3828 | 232 :unlet messages |
233 :" locked and scope attributes | |
234 :let d={} | let dl={} | lockvar dl | |
235 :for s in split("d dl v: g:") | |
236 : let name=tr(s, ':', 's') | |
237 : execute 'py '.name.'=vim.bindeval("'.s.'")' | |
238 : let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".pyeval(name.".".v:val)'), ';') | |
239 : $put =toput | |
240 :endfor | |
241 :silent! let d.abc=1 | |
242 :silent! let dl.abc=1 | |
243 :py d.locked=True | |
244 :py dl.locked=False | |
245 :silent! let d.def=1 | |
246 :silent! let dl.def=1 | |
247 :put ='d:'.string(d) | |
248 :put ='dl:'.string(dl) | |
249 :unlet d dl | |
250 : | |
251 :let l=[] | let ll=[] | lockvar ll | |
252 :for s in split("l ll") | |
253 : let name=tr(s, ':', 's') | |
254 : execute 'py '.name.'=vim.bindeval("'.s.'")' | |
255 : let toput=s.' : locked:'.pyeval(name.'.locked') | |
256 : $put =toput | |
257 :endfor | |
258 :silent! call extend(l, [0]) | |
259 :silent! call extend(ll, [0]) | |
260 :py l.locked=True | |
261 :py ll.locked=False | |
262 :silent! call extend(l, [1]) | |
263 :silent! call extend(ll, [1]) | |
264 :put ='l:'.string(l) | |
265 :put ='ll:'.string(ll) | |
266 :unlet l ll | |
3618 | 267 :" |
268 :" pyeval() | |
269 :let l=pyeval('range(3)') | |
270 :$put =string(l) | |
271 :let d=pyeval('{"a": "b", "c": 1, "d": ["e"]}') | |
272 :$put =sort(items(d)) | |
273 :if has('float') | |
274 : let f=pyeval('0.0') | |
275 : $put =string(f) | |
276 :else | |
277 : $put ='0.0' | |
278 :endif | |
3802 | 279 :" Invalid values: |
280 :for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim'] | |
281 : try | |
282 : let v=pyeval(e) | |
283 : catch | |
284 : let toput=e.":\t".v:exception[:13] | |
285 : $put =toput | |
286 : endtry | |
287 :endfor | |
4109 | 288 :" |
289 :" threading | |
290 :let l = [0] | |
291 :py l=vim.bindeval('l') | |
292 :py <<EOF | |
293 import threading | |
294 import time | |
295 | |
296 class T(threading.Thread): | |
297 def __init__(self): | |
298 threading.Thread.__init__(self) | |
299 self.t = 0 | |
300 self.running = True | |
301 | |
302 def run(self): | |
303 while self.running: | |
304 self.t += 1 | |
305 time.sleep(0.1) | |
306 | |
307 t = T() | |
308 t.start() | |
309 EOF | |
310 :sleep 1 | |
311 :py t.running = False | |
312 :py t.join() | |
313 :py l[0] = t.t > 8 # check if the background thread is working | |
314 :$put =string(l) | |
315 :" | |
316 :" settrace | |
317 :let l = [] | |
318 :py l=vim.bindeval('l') | |
319 :py <<EOF | |
320 import sys | |
321 | |
322 def traceit(frame, event, arg): | |
323 global l | |
324 if event == "line": | |
325 l.extend([frame.f_lineno]) | |
326 return traceit | |
327 | |
328 def trace_main(): | |
329 for i in range(5): | |
330 pass | |
331 EOF | |
332 :py sys.settrace(traceit) | |
333 :py trace_main() | |
334 :py sys.settrace(None) | |
335 :$put =string(l) | |
4260 | 336 :" |
337 :" Slice | |
338 :py ll = vim.bindeval('[0, 1, 2, 3, 4, 5]') | |
339 :py l = ll[:4] | |
340 :$put =string(pyeval('l')) | |
341 :py l = ll[2:] | |
342 :$put =string(pyeval('l')) | |
343 :py l = ll[:-4] | |
344 :$put =string(pyeval('l')) | |
345 :py l = ll[-2:] | |
346 :$put =string(pyeval('l')) | |
347 :py l = ll[2:4] | |
348 :$put =string(pyeval('l')) | |
349 :py l = ll[4:2] | |
350 :$put =string(pyeval('l')) | |
351 :py l = ll[-4:-2] | |
352 :$put =string(pyeval('l')) | |
353 :py l = ll[-2:-4] | |
354 :$put =string(pyeval('l')) | |
355 :py l = ll[:] | |
356 :$put =string(pyeval('l')) | |
357 :py l = ll[0:6] | |
358 :$put =string(pyeval('l')) | |
359 :py l = ll[-10:10] | |
360 :$put =string(pyeval('l')) | |
4323 | 361 :" |
362 :" Vars | |
363 :let g:foo = 'bac' | |
364 :let w:abc = 'def' | |
365 :let b:baz = 'bar' | |
4413 | 366 :let t:bar = 'jkl' |
4323 | 367 :try |
368 : throw "Abc" | |
369 :catch | |
370 : put =pyeval('vim.vvars[''exception'']') | |
371 :endtry | |
372 :put =pyeval('vim.vars[''foo'']') | |
373 :put =pyeval('vim.current.window.vars[''abc'']') | |
374 :put =pyeval('vim.current.buffer.vars[''baz'']') | |
4413 | 375 :put =pyeval('vim.current.tabpage.vars[''bar'']') |
4350 | 376 :" |
377 :" Options | |
378 :" paste: boolean, global | |
379 :" previewheight number, global | |
380 :" operatorfunc: string, global | |
381 :" number: boolean, window-local | |
382 :" numberwidth: number, window-local | |
383 :" colorcolumn: string, window-local | |
384 :" statusline: string, window-local/global | |
385 :" autoindent: boolean, buffer-local | |
4427 | 386 :" shiftwidth: number, buffer-local |
4350 | 387 :" omnifunc: string, buffer-local |
388 :" preserveindent: boolean, buffer-local/global | |
389 :" path: string, buffer-local/global | |
390 :let g:bufs=[bufnr('%')] | |
391 :new | |
392 :let g:bufs+=[bufnr('%')] | |
393 :vnew | |
394 :let g:bufs+=[bufnr('%')] | |
395 :wincmd j | |
396 :vnew | |
397 :let g:bufs+=[bufnr('%')] | |
398 :wincmd l | |
399 :fun RecVars(opt) | |
400 : let gval =string(eval('&g:'.a:opt)) | |
401 : let wvals=join(map(range(1, 4), 'v:val.":".string(getwinvar(v:val, "&".a:opt))')) | |
402 : let bvals=join(map(copy(g:bufs), 'v:val.":".string(getbufvar(v:val, "&".a:opt))')) | |
403 : put =' G: '.gval | |
404 : put =' W: '.wvals | |
405 : put =' B: '.wvals | |
406 :endfun | |
407 py << EOF | |
408 def e(s, g=globals(), l=locals()): | |
409 try: | |
410 exec(s, g, l) | |
4399 | 411 except: |
4498 | 412 vim.command('return ' + repr(sys.exc_type.__name__)) |
4350 | 413 |
414 def ev(s, g=globals(), l=locals()): | |
415 try: | |
416 return eval(s, g, l) | |
4399 | 417 except: |
4498 | 418 vim.command('let exc=' + repr(sys.exc_type.__name__)) |
4350 | 419 return 0 |
420 EOF | |
421 :function E(s) | |
422 : python e(vim.eval('a:s')) | |
423 :endfunction | |
424 :function Ev(s) | |
4498 | 425 : let r=pyeval('ev(vim.eval("a:s"))') |
426 : if exists('exc') | |
427 : throw exc | |
428 : endif | |
429 : return r | |
4350 | 430 :endfunction |
431 :py gopts1=vim.options | |
432 :py wopts1=vim.windows[2].options | |
433 :py wopts2=vim.windows[0].options | |
434 :py wopts3=vim.windows[1].options | |
435 :py bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options | |
436 :py bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options | |
437 :py bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options | |
4684
79522bb17125
updated for version 7.3.1089
Bram Moolenaar <bram@vim.org>
parents:
4665
diff
changeset
|
438 :set path=.,..,, |
4350 | 439 :let lst=[] |
440 :let lst+=[['paste', 1, 0, 1, 2, 1, 1, 0 ]] | |
441 :let lst+=[['previewheight', 5, 1, 6, 'a', 0, 1, 0 ]] | |
442 :let lst+=[['operatorfunc', 'A', 'B', 'C', 2, 0, 1, 0 ]] | |
443 :let lst+=[['number', 0, 1, 1, 0, 1, 0, 1 ]] | |
444 :let lst+=[['numberwidth', 2, 3, 5, -100, 0, 0, 1 ]] | |
445 :let lst+=[['colorcolumn', '+1', '+2', '+3', 'abc', 0, 0, 1 ]] | |
446 :let lst+=[['statusline', '1', '2', '4', 0, 0, 1, 1 ]] | |
447 :let lst+=[['autoindent', 0, 1, 1, 2, 1, 0, 2 ]] | |
4427 | 448 :let lst+=[['shiftwidth', 0, 2, 1, 3, 0, 0, 2 ]] |
4350 | 449 :let lst+=[['omnifunc', 'A', 'B', 'C', 1, 0, 0, 2 ]] |
450 :let lst+=[['preserveindent', 0, 1, 1, 2, 1, 1, 2 ]] | |
451 :let lst+=[['path', '.,,', ',,', '.', 0, 0, 1, 2 ]] | |
452 :for [oname, oval1, oval2, oval3, invval, bool, global, local] in lst | |
453 : py oname=vim.eval('oname') | |
454 : py oval1=vim.bindeval('oval1') | |
455 : py oval2=vim.bindeval('oval2') | |
456 : py oval3=vim.bindeval('oval3') | |
457 : if invval is 0 || invval is 1 | |
458 : py invval=bool(vim.bindeval('invval')) | |
459 : else | |
460 : py invval=vim.bindeval('invval') | |
461 : endif | |
462 : if bool | |
463 : py oval1=bool(oval1) | |
464 : py oval2=bool(oval2) | |
465 : py oval3=bool(oval3) | |
466 : endif | |
467 : put ='>>> '.oname | |
468 : for v in ['gopts1', 'wopts1', 'bopts1'] | |
469 : try | |
470 : put =' p/'.v.': '.Ev('repr('.v.'['''.oname.'''])') | |
471 : catch | |
472 : put =' p/'.v.'! '.v:exception | |
473 : endtry | |
4498 | 474 : let r=E(v.'['''.oname.''']=invval') |
475 : if r isnot 0 | |
476 : put =' inv: '.string(invval).'! '.r | |
477 : endif | |
4350 | 478 : for vv in (v is# 'gopts1' ? [v] : [v, v[:-2].'2', v[:-2].'3']) |
479 : let val=substitute(vv, '^.opts', 'oval', '') | |
4498 | 480 : let r=E(vv.'['''.oname.''']='.val) |
481 : if r isnot 0 | |
482 : put =' '.vv.'! '.r | |
483 : endif | |
4350 | 484 : endfor |
485 : endfor | |
486 : call RecVars(oname) | |
487 : for v in ['wopts3', 'bopts3'] | |
4498 | 488 : let r=E('del '.v.'["'.oname.'"]') |
489 : if r isnot 0 | |
490 : put =' del '.v.'! '.r | |
491 : endif | |
4350 | 492 : endfor |
493 : call RecVars(oname) | |
494 :endfor | |
495 :only | |
4397 | 496 :for buf in g:bufs[1:] |
497 : execute 'bwipeout!' buf | |
498 :endfor | |
4389 | 499 :" |
500 :" Test buffer object | |
501 :vnew | |
502 :put ='First line' | |
503 :put ='Second line' | |
504 :put ='Third line' | |
505 :1 delete _ | |
506 :py b=vim.current.buffer | |
507 :wincmd w | |
508 :mark a | |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
509 :augroup BUFS |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
510 : autocmd BufFilePost * python cb.append(vim.eval('expand("<abuf>")') + ':BufFilePost:' + vim.eval('bufnr("%")')) |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
511 : autocmd BufFilePre * python cb.append(vim.eval('expand("<abuf>")') + ':BufFilePre:' + vim.eval('bufnr("%")')) |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
512 :augroup END |
4389 | 513 py << EOF |
514 cb = vim.current.buffer | |
515 # Tests BufferAppend and BufferItem | |
516 cb.append(b[0]) | |
517 # Tests BufferSlice and BufferAssSlice | |
518 cb.append('abc') # Will be overwritten | |
519 cb[-1:] = b[:-2] | |
520 # Test BufferLength and BufferAssSlice | |
521 cb.append('def') # Will not be overwritten | |
522 cb[len(cb):] = b[:] | |
523 # Test BufferAssItem and BufferMark | |
524 cb.append('ghi') # Will be overwritten | |
525 cb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1])) | |
526 # Test BufferRepr | |
527 cb.append(repr(cb) + repr(b)) | |
528 # Modify foreign buffer | |
529 b.append('foo') | |
530 b[0]='bar' | |
531 b[0:0]=['baz'] | |
532 vim.command('call append("$", getbufline(%i, 1, "$"))' % b.number) | |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
533 # Test assigning to name property |
4684
79522bb17125
updated for version 7.3.1089
Bram Moolenaar <bram@vim.org>
parents:
4665
diff
changeset
|
534 import os |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
535 old_name = cb.name |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
536 cb.name = 'foo' |
4684
79522bb17125
updated for version 7.3.1089
Bram Moolenaar <bram@vim.org>
parents:
4665
diff
changeset
|
537 cb.append(cb.name[-11:].replace(os.path.sep, '/')) |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
538 b.name = 'bar' |
4684
79522bb17125
updated for version 7.3.1089
Bram Moolenaar <bram@vim.org>
parents:
4665
diff
changeset
|
539 cb.append(b.name[-11:].replace(os.path.sep, '/')) |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
540 cb.name = old_name |
4684
79522bb17125
updated for version 7.3.1089
Bram Moolenaar <bram@vim.org>
parents:
4665
diff
changeset
|
541 cb.append(cb.name[-17:].replace(os.path.sep, '/')) |
4389 | 542 # Test CheckBuffer |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
543 for _b in vim.buffers: |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
544 if _b is not cb: |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
545 vim.command('bwipeout! ' + str(_b.number)) |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
546 del _b |
4593
0cf552b325b5
updated for version 7.3.1044
Bram Moolenaar <bram@vim.org>
parents:
4589
diff
changeset
|
547 cb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid))) |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
548 for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc")', 'b.name = "!"'): |
4389 | 549 try: |
550 exec(expr) | |
551 except vim.error: | |
552 pass | |
553 else: | |
554 # Usually a SEGV here | |
555 # Should not happen in any case | |
556 cb.append('No exception for ' + expr) | |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
557 vim.command('cd .') |
4389 | 558 EOF |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
559 :augroup BUFS |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
560 : autocmd! |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
561 :augroup END |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
562 :augroup! BUFS |
4397 | 563 :" |
564 :" Test vim.buffers object | |
565 :set hidden | |
566 :edit a | |
567 :buffer # | |
568 :edit b | |
569 :buffer # | |
570 :edit c | |
571 :buffer # | |
572 py << EOF | |
4511
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
573 try: |
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
574 from __builtin__ import next |
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
575 except ImportError: |
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
576 next = lambda o: o.next() |
4397 | 577 # Check GCing iterator that was not fully exhausted |
578 i = iter(vim.buffers) | |
579 cb.append('i:' + str(next(i))) | |
580 # and also check creating more then one iterator at a time | |
581 i2 = iter(vim.buffers) | |
582 cb.append('i2:' + str(next(i2))) | |
583 cb.append('i:' + str(next(i))) | |
584 # The following should trigger GC and not cause any problems | |
585 del i | |
586 del i2 | |
587 i3 = iter(vim.buffers) | |
588 cb.append('i3:' + str(next(i3))) | |
589 del i3 | |
590 | |
591 prevnum = 0 | |
592 for b in vim.buffers: | |
593 # Check buffer order | |
594 if prevnum >= b.number: | |
595 cb.append('!!! Buffer numbers not in strictly ascending order') | |
596 # Check indexing: vim.buffers[number].number == number | |
597 cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) + '=' + repr(b)) | |
598 prevnum = b.number | |
599 | |
600 cb.append(str(len(vim.buffers))) | |
601 | |
602 bnums = list(map(lambda b: b.number, vim.buffers))[1:] | |
603 | |
604 # Test wiping out buffer with existing iterator | |
605 i4 = iter(vim.buffers) | |
606 cb.append('i4:' + str(next(i4))) | |
607 vim.command('bwipeout! ' + str(bnums.pop(0))) | |
608 try: | |
609 next(i4) | |
610 except vim.error: | |
611 pass | |
612 else: | |
613 cb.append('!!!! No vim.error') | |
614 i4 = iter(vim.buffers) | |
615 vim.command('bwipeout! ' + str(bnums.pop(-1))) | |
616 vim.command('bwipeout! ' + str(bnums.pop(-1))) | |
617 cb.append('i4:' + str(next(i4))) | |
618 try: | |
619 next(i4) | |
620 except StopIteration: | |
621 cb.append('StopIteration') | |
622 EOF | |
4413 | 623 :" |
624 :" Test vim.{tabpage,window}list and vim.{tabpage,window} objects | |
625 :tabnew 0 | |
626 :tabnew 1 | |
627 :vnew a.1 | |
628 :tabnew 2 | |
629 :vnew a.2 | |
630 :vnew b.2 | |
631 :vnew c.2 | |
632 py << EOF | |
633 cb.append('Number of tabs: ' + str(len(vim.tabpages))) | |
634 cb.append('Current tab pages:') | |
635 def W(w): | |
4511
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
636 if repr(w).find('(unknown)') != -1: |
4413 | 637 return '<window object (unknown)>' |
638 else: | |
639 return repr(w) | |
4511
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
640 |
4589
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
641 start = len(cb) |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
642 |
fa39483a1363
updated for version 7.3.1042
Bram Moolenaar <bram@vim.org>
parents:
4511
diff
changeset
|
643 def Cursor(w): |
4511
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
644 if w.buffer is cb: |
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
645 return repr((start - w.cursor[0], w.cursor[1])) |
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
646 else: |
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
647 return repr(w.cursor) |
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
648 |
4413 | 649 for t in vim.tabpages: |
650 cb.append(' ' + repr(t) + '(' + str(t.number) + ')' + ': ' + str(len(t.windows)) + ' windows, current is ' + W(t.window)) | |
651 cb.append(' Windows:') | |
652 for w in t.windows: | |
4511
ce94a870b59b
updated for version 7.3.1003
Bram Moolenaar <bram@vim.org>
parents:
4498
diff
changeset
|
653 cb.append(' ' + W(w) + '(' + str(w.number) + ')' + ': displays buffer ' + repr(w.buffer) + '; cursor is at ' + Cursor(w)) |
4413 | 654 # Other values depend on the size of the terminal, so they are checked partly: |
655 for attr in ('height', 'row', 'width', 'col'): | |
656 try: | |
657 aval = getattr(w, attr) | |
658 if type(aval) is not long: | |
659 raise TypeError | |
660 if aval < 0: | |
661 raise ValueError | |
662 except Exception: | |
663 cb.append('!!!!!! Error while getting attribute ' + attr + ': ' + sys.exc_type.__name__) | |
664 w.cursor = (len(w.buffer), 0) | |
665 cb.append('Number of windows in current tab page: ' + str(len(vim.windows))) | |
666 if list(vim.windows) != list(vim.current.tabpage.windows): | |
667 cb.append('!!!!!! Windows differ') | |
668 EOF | |
669 :" | |
670 :" Test vim.current | |
671 py << EOF | |
672 def H(o): | |
673 return repr(o) | |
674 cb.append('Current tab page: ' + repr(vim.current.tabpage)) | |
675 cb.append('Current window: ' + repr(vim.current.window) + ': ' + H(vim.current.window) + ' is ' + H(vim.current.tabpage.window)) | |
676 cb.append('Current buffer: ' + repr(vim.current.buffer) + ': ' + H(vim.current.buffer) + ' is ' + H(vim.current.window.buffer)+ ' is ' + H(vim.current.tabpage.window.buffer)) | |
677 # Assigning: fails | |
678 try: | |
679 vim.current.window = vim.tabpages[0].window | |
680 except ValueError: | |
681 cb.append('ValueError at assigning foreign tab window') | |
682 | |
683 for attr in ('window', 'tabpage', 'buffer'): | |
684 try: | |
685 setattr(vim.current, attr, None) | |
686 except TypeError: | |
687 cb.append('Type error at assigning None to vim.current.' + attr) | |
688 | |
689 # Assigning: success | |
690 vim.current.tabpage = vim.tabpages[-2] | |
691 vim.current.buffer = cb | |
692 vim.current.window = vim.windows[0] | |
693 vim.current.window.cursor = (len(vim.current.buffer), 0) | |
694 cb.append('Current tab page: ' + repr(vim.current.tabpage)) | |
695 cb.append('Current window: ' + repr(vim.current.window)) | |
696 cb.append('Current buffer: ' + repr(vim.current.buffer)) | |
697 cb.append('Current line: ' + repr(vim.current.line)) | |
4593
0cf552b325b5
updated for version 7.3.1044
Bram Moolenaar <bram@vim.org>
parents:
4589
diff
changeset
|
698 ws = list(vim.windows) |
0cf552b325b5
updated for version 7.3.1044
Bram Moolenaar <bram@vim.org>
parents:
4589
diff
changeset
|
699 ts = list(vim.tabpages) |
4413 | 700 for b in vim.buffers: |
701 if b is not cb: | |
4496 | 702 vim.command('bwipeout! ' + str(b.number)) |
4593
0cf552b325b5
updated for version 7.3.1044
Bram Moolenaar <bram@vim.org>
parents:
4589
diff
changeset
|
703 cb.append('w.valid: ' + repr([w.valid for w in ws])) |
0cf552b325b5
updated for version 7.3.1044
Bram Moolenaar <bram@vim.org>
parents:
4589
diff
changeset
|
704 cb.append('t.valid: ' + repr([t.valid for t in ts])) |
4413 | 705 EOF |
706 :tabonly! | |
707 :only! | |
4496 | 708 :" |
709 :" Test types | |
710 py << EOF | |
711 for expr, attr in ( | |
712 ('vim.vars', 'Dictionary'), | |
713 ('vim.options', 'Options'), | |
714 ('vim.bindeval("{}")', 'Dictionary'), | |
715 ('vim.bindeval("[]")', 'List'), | |
716 ('vim.bindeval("function(\'tr\')")', 'Function'), | |
717 ('vim.current.buffer', 'Buffer'), | |
718 ('vim.current.range', 'Range'), | |
719 ('vim.current.window', 'Window'), | |
720 ('vim.current.tabpage', 'TabPage'), | |
721 ): | |
722 cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is getattr(vim, attr))) | |
723 EOF | |
4498 | 724 :" |
4599
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
725 :" Test __dir__() method |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
726 py << EOF |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
727 for name, o in ( |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
728 ('current', vim.current), |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
729 ('buffer', vim.current.buffer), |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
730 ('window', vim.current.window), |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
731 ('tabpage', vim.current.tabpage), |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
732 ('range', vim.current.range), |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
733 ('dictionary', vim.bindeval('{}')), |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
734 ('list', vim.bindeval('[]')), |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
735 ('function', vim.bindeval('function("tr")')), |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
736 ('output', sys.stdout), |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
737 ): |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
738 cb.append(name + ':' + ','.join(dir(o))) |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
739 del name |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
740 del o |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
741 EOF |
89bec74fd793
updated for version 7.3.1047
Bram Moolenaar <bram@vim.org>
parents:
4593
diff
changeset
|
742 :" |
4627
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
743 :" Test vim.*.__new__ |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
744 :$put =string(pyeval('vim.Dictionary({})')) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
745 :$put =string(pyeval('vim.Dictionary(a=1)')) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
746 :$put =string(pyeval('vim.Dictionary(((''a'', 1),))')) |
4629
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
747 :$put =string(pyeval('vim.List()')) |
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
748 :$put =string(pyeval('vim.List(iter(''abc''))')) |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
749 :$put =string(pyeval('vim.Function(''tr'')')) |
4619
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
750 :" |
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
751 :" Test stdout/stderr |
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
752 :redir => messages |
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
753 :py sys.stdout.write('abc') ; sys.stdout.write('def') |
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
754 :py sys.stderr.write('abc') ; sys.stderr.write('def') |
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
755 :py sys.stdout.writelines(iter('abc')) |
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
756 :py sys.stderr.writelines(iter('abc')) |
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
757 :redir END |
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
758 :$put =string(substitute(messages, '\d\+', '', 'g')) |
4627
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
759 :" Test subclassing |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
760 :fun Put(...) |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
761 : $put =string(a:000) |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
762 : return a:000 |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
763 :endfun |
4627
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
764 py << EOF |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
765 class DupDict(vim.Dictionary): |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
766 def __setitem__(self, key, value): |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
767 super(DupDict, self).__setitem__(key, value) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
768 super(DupDict, self).__setitem__('dup_' + key, value) |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
769 dd = DupDict() |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
770 dd['a'] = 'b' |
4629
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
771 |
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
772 class DupList(vim.List): |
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
773 def __getitem__(self, idx): |
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
774 return [super(DupList, self).__getitem__(idx)] * 2 |
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
775 |
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
776 dl = DupList() |
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
777 dl2 = DupList(iter('abc')) |
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
778 dl.extend(dl2[0]) |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
779 |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
780 class DupFun(vim.Function): |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
781 def __call__(self, arg): |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
782 return super(DupFun, self).__call__(arg, arg) |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
783 |
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
784 df = DupFun('Put') |
4627
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
785 EOF |
18ba89e06fab
updated for version 7.3.1061
Bram Moolenaar <bram@vim.org>
parents:
4619
diff
changeset
|
786 :$put =string(sort(keys(pyeval('dd')))) |
4629
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
787 :$put =string(pyeval('dl')) |
e4e48d4ee040
updated for version 7.3.1062
Bram Moolenaar <bram@vim.org>
parents:
4627
diff
changeset
|
788 :$put =string(pyeval('dl2')) |
4631
4157fef7b950
updated for version 7.3.1063
Bram Moolenaar <bram@vim.org>
parents:
4629
diff
changeset
|
789 :$put =string(pyeval('df(2)')) |
4619
90beab957ba9
updated for version 7.3.1057
Bram Moolenaar <bram@vim.org>
parents:
4599
diff
changeset
|
790 :" |
4704
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
791 :" Test chdir |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
792 py << EOF |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
793 import os |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
794 fnamemodify = vim.Function('fnamemodify') |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
795 cb.append(fnamemodify('.', ':p:h:t')) |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
796 cb.append(vim.eval('@%')) |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
797 os.chdir('..') |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
798 cb.append(fnamemodify('.', ':p:h:t')) |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
799 cb.append(vim.eval('@%').replace(os.path.sep, '/')) |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
800 os.chdir('testdir') |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
801 cb.append(fnamemodify('.', ':p:h:t')) |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
802 cb.append(vim.eval('@%')) |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
803 EOF |
542af01979be
updated for version 7.3.1099
Bram Moolenaar <bram@vim.org>
parents:
4698
diff
changeset
|
804 :" |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
805 :" Test errors |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
806 :fun F() dict |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
807 :endfun |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
808 :fun D() |
4498 | 809 :endfun |
810 py << EOF | |
811 def ee(expr, g=globals(), l=locals()): | |
812 try: | |
813 exec(expr, g, l) | |
814 except: | |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
815 cb.append(expr + ':' + repr(sys.exc_info()[:2])) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
816 else: |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
817 cb.append(expr + ':NOT FAILED') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
818 d = vim.Dictionary() |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
819 ned = vim.Dictionary(foo='bar', baz='abc') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
820 dl = vim.Dictionary(a=1) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
821 dl.locked = True |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
822 l = vim.List() |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
823 ll = vim.List('abc') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
824 ll.locked = True |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
825 f = vim.Function('string') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
826 fd = vim.Function('F') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
827 fdel = vim.Function('D') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
828 vim.command('delfunction D') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
829 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
830 def subexpr_test(expr, name, subexprs): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
831 cb.append('>>> Testing %s using %s' % (name, expr)) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
832 for subexpr in subexprs: |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
833 ee(expr % subexpr) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
834 cb.append('<<< Finished') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
835 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
836 def stringtochars_test(expr): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
837 return subexpr_test(expr, 'StringToChars', ( |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
838 '1', # Fail type checks |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
839 'u"\\0"', # Fail PyString_AsStringAndSize(bytes, , NULL) check |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
840 '"\\0"', # Fail PyString_AsStringAndSize(object, , NULL) check |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
841 )) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
842 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
843 class Mapping(object): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
844 def __init__(self, d): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
845 self.d = d |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
846 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
847 def __getitem__(self, key): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
848 return self.d[key] |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
849 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
850 def keys(self): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
851 return self.d.keys() |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
852 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
853 def items(self): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
854 return self.d.items() |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
855 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
856 def convertfrompyobject_test(expr, recurse=True): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
857 # pydict_to_tv |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
858 stringtochars_test(expr % '{%s : 1}') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
859 if recurse: |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
860 convertfrompyobject_test(expr % '{"abc" : %s}', False) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
861 # pymap_to_tv |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
862 stringtochars_test(expr % 'Mapping({%s : 1})') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
863 if recurse: |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
864 convertfrompyobject_test(expr % 'Mapping({"abc" : %s})', False) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
865 # pyseq_to_tv |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
866 iter_test(expr) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
867 return subexpr_test(expr, 'ConvertFromPyObject', ( |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
868 'None', # Not conversible |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
869 '{"": 1}', # Empty key not allowed |
4706
bf917ee1fad2
updated for version 7.3.1100
Bram Moolenaar <bram@vim.org>
parents:
4704
diff
changeset
|
870 '{u"": 1}', # Same, but with unicode object |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
871 'FailingMapping()', # |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
872 'FailingMappingKey()', # |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
873 )) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
874 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
875 def convertfrompymapping_test(expr): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
876 convertfrompyobject_test(expr) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
877 return subexpr_test(expr, 'ConvertFromPyMapping', ( |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
878 '[]', |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
879 )) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
880 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
881 def iter_test(expr): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
882 return subexpr_test(expr, '*Iter*', ( |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
883 'FailingIter()', |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
884 'FailingIterNext()', |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
885 )) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
886 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
887 class FailingTrue(object): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
888 def __nonzero__(self): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
889 raise NotImplementedError |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
890 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
891 class FailingIter(object): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
892 def __iter__(self): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
893 raise NotImplementedError |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
894 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
895 class FailingIterNext(object): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
896 def __iter__(self): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
897 return self |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
898 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
899 def next(self): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
900 raise NotImplementedError |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
901 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
902 class FailingMappingKey(object): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
903 def __getitem__(self, item): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
904 raise NotImplementedError |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
905 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
906 def keys(self): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
907 return list("abc") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
908 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
909 class FailingMapping(object): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
910 def __getitem__(self): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
911 raise NotImplementedError |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
912 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
913 def keys(self): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
914 raise NotImplementedError |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
915 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
916 class FailingList(list): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
917 def __getitem__(self, idx): |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
918 if i == 2: |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
919 raise NotImplementedError |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
920 else: |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
921 return super(FailingList, self).__getitem__(idx) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
922 |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
923 cb.append("> Output") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
924 cb.append(">> OutputSetattr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
925 ee('del sys.stdout.softspace') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
926 ee('sys.stdout.softspace = []') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
927 ee('sys.stdout.attr = None') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
928 cb.append(">> OutputWrite") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
929 ee('sys.stdout.write(None)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
930 cb.append(">> OutputWriteLines") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
931 ee('sys.stdout.writelines(None)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
932 ee('sys.stdout.writelines([1])') |
4665
7a35419393c3
updated for version 7.3.1080
Bram Moolenaar <bram@vim.org>
parents:
4645
diff
changeset
|
933 #iter_test('sys.stdout.writelines(%s)') |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
934 cb.append("> VimCommand") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
935 ee('vim.command(1)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
936 #! Not checked: vim->python exceptions translating: checked later |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
937 cb.append("> VimToPython") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
938 #! Not checked: everything: needs errors in internal python functions |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
939 cb.append("> VimEval") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
940 ee('vim.eval(1)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
941 #! Not checked: everything: needs errors in internal python functions |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
942 cb.append("> VimEvalPy") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
943 ee('vim.bindeval(1)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
944 #! Not checked: vim->python exceptions translating: checked later |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
945 cb.append("> VimStrwidth") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
946 ee('vim.strwidth(1)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
947 cb.append("> Dictionary") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
948 cb.append(">> DictionaryConstructor") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
949 ee('vim.Dictionary("abc")') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
950 ##! Not checked: py_dict_alloc failure |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
951 cb.append(">> DictionarySetattr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
952 ee('del d.locked') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
953 ee('d.locked = FailingTrue()') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
954 ee('vim.vvars.locked = False') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
955 ee('d.scope = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
956 ee('d.xxx = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
957 cb.append(">> _DictionaryItem") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
958 ee('d.get("a", 2, 3)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
959 stringtochars_test('d.get(%s)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
960 ee('d.pop("a")') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
961 ee('dl.pop("a")') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
962 cb.append(">> DictionaryIterNext") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
963 ee('for i in ned: ned["a"] = 1') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
964 cb.append(">> DictionaryAssItem") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
965 ee('dl["b"] = 1') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
966 stringtochars_test('d[%s] = 1') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
967 convertfrompyobject_test('d["a"] = %s') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
968 cb.append(">> DictionaryUpdate") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
969 cb.append(">>> kwargs") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
970 cb.append(">>> iter") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
971 ee('d.update(FailingMapping())') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
972 ee('d.update([FailingIterNext()])') |
4665
7a35419393c3
updated for version 7.3.1080
Bram Moolenaar <bram@vim.org>
parents:
4645
diff
changeset
|
973 #iter_test('d.update(%s)') |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
974 convertfrompyobject_test('d.update(%s)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
975 stringtochars_test('d.update(((%s, 0),))') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
976 convertfrompyobject_test('d.update((("a", %s),))') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
977 cb.append(">> DictionaryPopItem") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
978 ee('d.popitem(1, 2)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
979 cb.append(">> DictionaryHasKey") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
980 ee('d.has_key()') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
981 cb.append("> List") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
982 cb.append(">> ListConstructor") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
983 ee('vim.List(1, 2)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
984 ee('vim.List(a=1)') |
4665
7a35419393c3
updated for version 7.3.1080
Bram Moolenaar <bram@vim.org>
parents:
4645
diff
changeset
|
985 #iter_test('vim.List(%s)') |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
986 convertfrompyobject_test('vim.List([%s])') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
987 cb.append(">> ListItem") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
988 ee('l[1000]') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
989 cb.append(">> ListAssItem") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
990 ee('ll[1] = 2') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
991 ee('l[1000] = 3') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
992 cb.append(">> ListAssSlice") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
993 ee('ll[1:100] = "abc"') |
4665
7a35419393c3
updated for version 7.3.1080
Bram Moolenaar <bram@vim.org>
parents:
4645
diff
changeset
|
994 #iter_test('l[:] = %s') |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
995 convertfrompyobject_test('l[:] = [%s]') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
996 cb.append(">> ListConcatInPlace") |
4665
7a35419393c3
updated for version 7.3.1080
Bram Moolenaar <bram@vim.org>
parents:
4645
diff
changeset
|
997 #iter_test('l.extend(%s)') |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
998 convertfrompyobject_test('l.extend([%s])') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
999 cb.append(">> ListSetattr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1000 ee('del l.locked') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1001 ee('l.locked = FailingTrue()') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1002 ee('l.xxx = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1003 cb.append("> Function") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1004 cb.append(">> FunctionConstructor") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1005 ee('vim.Function("123")') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1006 ee('vim.Function("xxx_non_existent_function_xxx")') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1007 ee('vim.Function("xxx#non#existent#function#xxx")') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1008 cb.append(">> FunctionCall") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1009 convertfrompyobject_test('f(%s)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1010 convertfrompymapping_test('fd(self=%s)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1011 cb.append("> TabPage") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1012 cb.append(">> TabPageAttr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1013 ee('vim.current.tabpage.xxx') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1014 cb.append("> TabList") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1015 cb.append(">> TabListItem") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1016 ee('vim.tabpages[1000]') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1017 cb.append("> Window") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1018 cb.append(">> WindowAttr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1019 ee('vim.current.window.xxx') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1020 cb.append(">> WindowSetattr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1021 ee('vim.current.window.buffer = 0') |
4665
7a35419393c3
updated for version 7.3.1080
Bram Moolenaar <bram@vim.org>
parents:
4645
diff
changeset
|
1022 ee('vim.current.window.cursor = (100000000, 100000000)') |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1023 ee('vim.current.window.cursor = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1024 ee('vim.current.window.height = "abc"') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1025 ee('vim.current.window.width = "abc"') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1026 ee('vim.current.window.xxxxxx = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1027 cb.append("> WinList") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1028 cb.append(">> WinListItem") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1029 ee('vim.windows[1000]') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1030 cb.append("> Buffer") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1031 cb.append(">> StringToLine (indirect)") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1032 ee('vim.current.buffer[0] = "\\na"') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1033 cb.append(">> SetBufferLine (indirect)") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1034 ee('vim.current.buffer[0] = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1035 cb.append(">> SetBufferLines (indirect)") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1036 ee('vim.current.buffer[:] = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1037 ee('vim.current.buffer[:] = ["\\na", "bc"]') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1038 cb.append(">> InsertBufferLines (indirect)") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1039 ee('vim.current.buffer.append(None)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1040 ee('vim.current.buffer.append(["\\na", "bc"])') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1041 ee('vim.current.buffer.append("\\nbc")') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1042 cb.append(">> RBItem") |
4665
7a35419393c3
updated for version 7.3.1080
Bram Moolenaar <bram@vim.org>
parents:
4645
diff
changeset
|
1043 ee('vim.current.buffer[100000000]') |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1044 cb.append(">> RBAsItem") |
4665
7a35419393c3
updated for version 7.3.1080
Bram Moolenaar <bram@vim.org>
parents:
4645
diff
changeset
|
1045 ee('vim.current.buffer[100000000] = ""') |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1046 cb.append(">> BufferAttr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1047 ee('vim.current.buffer.xxx') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1048 cb.append(">> BufferSetattr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1049 ee('vim.current.buffer.name = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1050 ee('vim.current.buffer.xxx = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1051 cb.append(">> BufferMark") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1052 ee('vim.current.buffer.mark(0)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1053 ee('vim.current.buffer.mark("abc")') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1054 ee('vim.current.buffer.mark("!")') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1055 cb.append(">> BufferRange") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1056 ee('vim.current.buffer.range(1, 2, 3)') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1057 cb.append("> BufMap") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1058 cb.append(">> BufMapItem") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1059 ee('vim.buffers[None]') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1060 ee('vim.buffers[100000000]') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1061 cb.append("> Current") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1062 cb.append(">> CurrentGetattr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1063 ee('vim.current.xxx') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1064 cb.append(">> CurrentSetattr") |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1065 ee('vim.current.line = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1066 ee('vim.current.buffer = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1067 ee('vim.current.window = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1068 ee('vim.current.tabpage = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1069 ee('vim.current.xxx = True') |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1070 EOF |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1071 :" |
4833
70b1178dec79
updated for version 7.3.1163
Bram Moolenaar <bram@vim.org>
parents:
4706
diff
changeset
|
1072 :" Test import TODO: BROKEN |
70b1178dec79
updated for version 7.3.1163
Bram Moolenaar <bram@vim.org>
parents:
4706
diff
changeset
|
1073 :"py << EOF |
70b1178dec79
updated for version 7.3.1163
Bram Moolenaar <bram@vim.org>
parents:
4706
diff
changeset
|
1074 :"vim.options['rtp'] = os.getcwd().replace(',', '\\,').replace('\\', '\\\\') |
70b1178dec79
updated for version 7.3.1163
Bram Moolenaar <bram@vim.org>
parents:
4706
diff
changeset
|
1075 :"from module import dir as d |
70b1178dec79
updated for version 7.3.1163
Bram Moolenaar <bram@vim.org>
parents:
4706
diff
changeset
|
1076 :"from modulex import ddir |
70b1178dec79
updated for version 7.3.1163
Bram Moolenaar <bram@vim.org>
parents:
4706
diff
changeset
|
1077 :"cb.append(d + ',' + ddir) |
70b1178dec79
updated for version 7.3.1163
Bram Moolenaar <bram@vim.org>
parents:
4706
diff
changeset
|
1078 :"EOF |
70b1178dec79
updated for version 7.3.1163
Bram Moolenaar <bram@vim.org>
parents:
4706
diff
changeset
|
1079 :" |
4637
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1080 :" Test exceptions |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1081 :fun Exe(e) |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1082 : execute a:e |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1083 :endfun |
4c46e1487c63
updated for version 7.3.1066
Bram Moolenaar <bram@vim.org>
parents:
4631
diff
changeset
|
1084 py << EOF |
4498 | 1085 Exe = vim.bindeval('function("Exe")') |
1086 ee('vim.command("throw \'abc\'")') | |
1087 ee('Exe("throw \'def\'")') | |
1088 ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")') | |
1089 ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")') | |
1090 ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")') | |
1091 ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")') | |
1092 EOF | |
3618 | 1093 :endfun |
1094 :" | |
1095 :call Test() | |
1096 :" | |
1097 :delfunc Test | |
1098 :call garbagecollect(1) | |
1099 :" | |
1100 :/^start:/,$wq! test.out | |
3828 | 1101 :call getchar() |
3618 | 1102 ENDTEST |
1103 | |
1104 start: |