view src/testdir/test86.ok @ 4599:89bec74fd793 v7.3.1047

updated for version 7.3.1047 Problem: Python: dir() does not work properly. Solution: Python patch 8. Add __dir__ method to all objects with custom tp_getattr supplemented by __members__ attribute for at least python-2* versions. __members__ is not mentioned in python-3* dir() output even if it is accessible. (ZyX)
author Bram Moolenaar <bram@vim.org>
date Wed, 29 May 2013 22:36:10 +0200
parents 0cf552b325b5
children 219b2fcad60d
line wrap: on
line source

start:
[1, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
[1, 2, function('strlen'), {'a': 1}]
Vim(put):E684:
[0, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
[0, function('strlen'), [1, 2, function('strlen'), {'a': 1}]]
['-1', '1', 'b']
'-1' : {'a': 1}
'1' : 'asd'
'b' : [1, 2, function('strlen')]
[0, function('strlen')]
[3]
{'1': 'asd', 'b': [1, 2, function('strlen')]}
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 3]
[0, 1]
[0, 1]
[0, 1]
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 2, 3]
[2, 3]
[2, 3]
[2, 3]
['a', 0, 1, 2, 3]
[0, 'b', 2, 3]
[0, 1, 'c']
[0, 1, 2, 3, 'd']
[0, 1, 2, 'e', 3]
['f', 2, 3]
[0, 1, 'g', 2, 3]
['h']
[0, 1, 2, 3]
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd']
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}]
[function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New']
Vim(python):E725:
Vim(python):E117:
[0.0, 0.0]
KeyError
TypeError
TypeError
ValueError
TypeError
TypeError
d : locked:0;scope:0
dl : locked:1;scope:0
v: : locked:2;scope:1
g: : locked:0;scope:2
d:{'abc': 1}
dl:{'def': 1}
l : locked:0
ll : locked:1
l:[0]
ll:[1]
[0, 1, 2]
['a', 'b']
['c', 1]
['d', ['e']]
0.0
"\0":	Vim(let):E859:
{"\0": 1}:	Vim(let):E859:
undefined_name:	Vim(let):Trace
vim:	Vim(let):E859:
[1]
[1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1]
[0, 1, 2, 3]
[2, 3, 4, 5]
[0, 1]
[4, 5]
[2, 3]
[]
[2, 3]
[]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5]
Abc
bac
def
bar
jkl
>>> paste
  p/gopts1: False
  p/wopts1! KeyError
  inv: 2! KeyError
  wopts1! KeyError
  wopts2! KeyError
  wopts3! KeyError
  p/bopts1! KeyError
  inv: 2! KeyError
  bopts1! KeyError
  bopts2! KeyError
  bopts3! KeyError
  G: 1
  W: 1:1 2:1 3:1 4:1
  B: 1:1 2:1 3:1 4:1
  del wopts3! KeyError
  del bopts3! KeyError
  G: 1
  W: 1:1 2:1 3:1 4:1
  B: 1:1 2:1 3:1 4:1
>>> previewheight
  p/gopts1: 12
  inv: 'a'! TypeError
  p/wopts1! KeyError
  inv: 'a'! KeyError
  wopts1! KeyError
  wopts2! KeyError
  wopts3! KeyError
  p/bopts1! KeyError
  inv: 'a'! KeyError
  bopts1! KeyError
  bopts2! KeyError
  bopts3! KeyError
  G: 5
  W: 1:5 2:5 3:5 4:5
  B: 1:5 2:5 3:5 4:5
  del wopts3! KeyError
  del bopts3! KeyError
  G: 5
  W: 1:5 2:5 3:5 4:5
  B: 1:5 2:5 3:5 4:5
>>> operatorfunc
  p/gopts1: ''
  inv: 2! TypeError
  p/wopts1! KeyError
  inv: 2! KeyError
  wopts1! KeyError
  wopts2! KeyError
  wopts3! KeyError
  p/bopts1! KeyError
  inv: 2! KeyError
  bopts1! KeyError
  bopts2! KeyError
  bopts3! KeyError
  G: 'A'
  W: 1:'A' 2:'A' 3:'A' 4:'A'
  B: 1:'A' 2:'A' 3:'A' 4:'A'
  del wopts3! KeyError
  del bopts3! KeyError
  G: 'A'
  W: 1:'A' 2:'A' 3:'A' 4:'A'
  B: 1:'A' 2:'A' 3:'A' 4:'A'
>>> number
  p/gopts1! KeyError
  inv: 0! KeyError
  gopts1! KeyError
  p/wopts1: False
  p/bopts1! KeyError
  inv: 0! KeyError
  bopts1! KeyError
  bopts2! KeyError
  bopts3! KeyError
  G: 0
  W: 1:1 2:1 3:0 4:0
  B: 1:1 2:1 3:0 4:0
  del wopts3! ValueError
  del bopts3! KeyError
  G: 0
  W: 1:1 2:1 3:0 4:0
  B: 1:1 2:1 3:0 4:0
>>> numberwidth
  p/gopts1! KeyError
  inv: -100! KeyError
  gopts1! KeyError
  p/wopts1: 8
  inv: -100! error
  p/bopts1! KeyError
  inv: -100! KeyError
  bopts1! KeyError
  bopts2! KeyError
  bopts3! KeyError
  G: 8
  W: 1:3 2:5 3:2 4:8
  B: 1:3 2:5 3:2 4:8
  del wopts3! ValueError
  del bopts3! KeyError
  G: 8
  W: 1:3 2:5 3:2 4:8
  B: 1:3 2:5 3:2 4:8
>>> colorcolumn
  p/gopts1! KeyError
  inv: 'abc'! KeyError
  gopts1! KeyError
  p/wopts1: ''
  inv: 'abc'! error
  p/bopts1! KeyError
  inv: 'abc'! KeyError
  bopts1! KeyError
  bopts2! KeyError
  bopts3! KeyError
  G: ''
  W: 1:'+2' 2:'+3' 3:'+1' 4:''
  B: 1:'+2' 2:'+3' 3:'+1' 4:''
  del wopts3! ValueError
  del bopts3! KeyError
  G: ''
  W: 1:'+2' 2:'+3' 3:'+1' 4:''
  B: 1:'+2' 2:'+3' 3:'+1' 4:''
>>> statusline
  p/gopts1: ''
  inv: 0! TypeError
  p/wopts1: None
  inv: 0! TypeError
  p/bopts1! KeyError
  inv: 0! KeyError
  bopts1! KeyError
  bopts2! KeyError
  bopts3! KeyError
  G: '1'
  W: 1:'2' 2:'4' 3:'1' 4:'1'
  B: 1:'2' 2:'4' 3:'1' 4:'1'
  del bopts3! KeyError
  G: '1'
  W: 1:'2' 2:'1' 3:'1' 4:'1'
  B: 1:'2' 2:'1' 3:'1' 4:'1'
>>> autoindent
  p/gopts1! KeyError
  inv: 2! KeyError
  gopts1! KeyError
  p/wopts1! KeyError
  inv: 2! KeyError
  wopts1! KeyError
  wopts2! KeyError
  wopts3! KeyError
  p/bopts1: False
  G: 0
  W: 1:0 2:1 3:0 4:1
  B: 1:0 2:1 3:0 4:1
  del wopts3! KeyError
  del bopts3! ValueError
  G: 0
  W: 1:0 2:1 3:0 4:1
  B: 1:0 2:1 3:0 4:1
>>> shiftwidth
  p/gopts1! KeyError
  inv: 3! KeyError
  gopts1! KeyError
  p/wopts1! KeyError
  inv: 3! KeyError
  wopts1! KeyError
  wopts2! KeyError
  wopts3! KeyError
  p/bopts1: 8
  G: 8
  W: 1:0 2:2 3:8 4:1
  B: 1:0 2:2 3:8 4:1
  del wopts3! KeyError
  del bopts3! ValueError
  G: 8
  W: 1:0 2:2 3:8 4:1
  B: 1:0 2:2 3:8 4:1
>>> omnifunc
  p/gopts1! KeyError
  inv: 1! KeyError
  gopts1! KeyError
  p/wopts1! KeyError
  inv: 1! KeyError
  wopts1! KeyError
  wopts2! KeyError
  wopts3! KeyError
  p/bopts1: ''
  inv: 1! TypeError
  G: ''
  W: 1:'A' 2:'B' 3:'' 4:'C'
  B: 1:'A' 2:'B' 3:'' 4:'C'
  del wopts3! KeyError
  del bopts3! ValueError
  G: ''
  W: 1:'A' 2:'B' 3:'' 4:'C'
  B: 1:'A' 2:'B' 3:'' 4:'C'
>>> preserveindent
  p/gopts1! KeyError
  inv: 2! KeyError
  gopts1! KeyError
  p/wopts1! KeyError
  inv: 2! KeyError
  wopts1! KeyError
  wopts2! KeyError
  wopts3! KeyError
  p/bopts1: False
  G: 0
  W: 1:0 2:1 3:0 4:1
  B: 1:0 2:1 3:0 4:1
  del wopts3! KeyError
  del bopts3! ValueError
  G: 0
  W: 1:0 2:1 3:0 4:1
  B: 1:0 2:1 3:0 4:1
>>> path
  p/gopts1: '.,/usr/include,,'
  inv: 0! TypeError
  p/wopts1! KeyError
  inv: 0! KeyError
  wopts1! KeyError
  wopts2! KeyError
  wopts3! KeyError
  p/bopts1: None
  inv: 0! TypeError
  G: '.,,'
  W: 1:'.,,' 2:',,' 3:'.,,' 4:'.'
  B: 1:'.,,' 2:',,' 3:'.,,' 4:'.'
  del wopts3! KeyError
  G: '.,,'
  W: 1:'.,,' 2:',,' 3:'.,,' 4:'.,,'
  B: 1:'.,,' 2:',,' 3:'.,,' 4:'.,,'
First line
First line
def
First line
Second line
Third line
(7, 2)
<buffer test86.in><buffer >
baz
bar
Second line
Third line
foo
1:BufFilePre:1
6:BufFilePost:1
testdir/foo
5:BufFilePre:5
5:BufFilePost:5
testdir/bar
1:BufFilePre:1
7:BufFilePost:1
testdir/test86.in
valid: b:False, cb:True
i:<buffer test86.in>
i2:<buffer test86.in>
i:<buffer a>
i3:<buffer test86.in>
1:<buffer test86.in>=<buffer test86.in>
8:<buffer a>=<buffer a>
9:<buffer b>=<buffer b>
10:<buffer c>=<buffer c>
4
i4:<buffer test86.in>
i4:<buffer test86.in>
StopIteration
Number of tabs: 4
Current tab pages:
  <tabpage 0>(1): 1 windows, current is <window object (unknown)>
  Windows:
    <window object (unknown)>(1): displays buffer <buffer test86.in>; cursor is at (37, 0)
  <tabpage 1>(2): 1 windows, current is <window object (unknown)>
  Windows:
    <window object (unknown)>(1): displays buffer <buffer 0>; cursor is at (1, 0)
  <tabpage 2>(3): 2 windows, current is <window object (unknown)>
  Windows:
    <window object (unknown)>(1): displays buffer <buffer a.1>; cursor is at (1, 0)
    <window object (unknown)>(2): displays buffer <buffer 1>; cursor is at (1, 0)
  <tabpage 3>(4): 4 windows, current is <window 0>
  Windows:
    <window 0>(1): displays buffer <buffer c.2>; cursor is at (1, 0)
    <window 1>(2): displays buffer <buffer b.2>; cursor is at (1, 0)
    <window 2>(3): displays buffer <buffer a.2>; cursor is at (1, 0)
    <window 3>(4): displays buffer <buffer 2>; cursor is at (1, 0)
Number of windows in current tab page: 4
Current tab page: <tabpage 3>
Current window: <window 0>: <window 0> is <window 0>
Current buffer: <buffer c.2>: <buffer c.2> is <buffer c.2> is <buffer c.2>
ValueError at assigning foreign tab window
Type error at assigning None to vim.current.window
Type error at assigning None to vim.current.tabpage
Type error at assigning None to vim.current.buffer
Current tab page: <tabpage 2>
Current window: <window 0>
Current buffer: <buffer test86.in>
Current line: 'Type error at assigning None to vim.current.buffer'
w.valid: [True, False]
t.valid: [True, False, True, False]
vim.vars:Dictionary:True
vim.options:Options:True
vim.bindeval("{}"):Dictionary:True
vim.bindeval("[]"):List:True
vim.bindeval("function('tr')"):Function:True
vim.current.buffer:Buffer:True
vim.current.range:Range:True
vim.current.window:Window:True
vim.current.tabpage:TabPage:True
current:__dir__,__members__,buffer,line,range,tabpage,window
buffer:__dir__,__members__,append,mark,name,number,options,range,valid,vars
window:__dir__,__members__,buffer,col,cursor,height,number,options,row,tabpage,valid,vars
tabpage:__dir__,__members__,number,valid,vars,window,windows
range:__dir__,__members__,append,end,start
dictionary:__dir__,__members__,keys,locked,scope
list:__dir__,__members__,extend,locked
function:__call__,__dir__,__members__,softspace
output:__dir__,__members__,flush,softspace,write,writelines
(<class 'vim.error'>, error('abc',))
(<class 'vim.error'>, error('def',))
(<class 'vim.error'>, error('ghi',))
(<class 'vim.error'>, error('Vim(echoerr):jkl',))
(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))