Skip to content
Snippets Groups Projects
Commit a4720019 authored by Bram Moolenaar's avatar Bram Moolenaar
Browse files

updated for version 7.3.955

Problem:    Python: Not enough tests.
Solution:   Add tests for vim.{current,window*,tabpage*}. (ZyX)
parent b983f75d
No related merge requests found
......@@ -334,6 +334,7 @@ EOF
:let g:foo = 'bac'
:let w:abc = 'def'
:let b:baz = 'bar'
:let t:bar = 'jkl'
:try
: throw "Abc"
:catch
......@@ -342,6 +343,7 @@ EOF
:put =pyeval('vim.vars[''foo'']')
:put =pyeval('vim.current.window.vars[''abc'']')
:put =pyeval('vim.current.buffer.vars[''baz'']')
:put =pyeval('vim.current.tabpage.vars[''bar'']')
:"
:" Options
:" paste: boolean, global
......@@ -561,6 +563,78 @@ try:
except StopIteration:
cb.append('StopIteration')
EOF
:"
:" Test vim.{tabpage,window}list and vim.{tabpage,window} objects
:tabnew 0
:tabnew 1
:vnew a.1
:tabnew 2
:vnew a.2
:vnew b.2
:vnew c.2
py << EOF
cb.append('Number of tabs: ' + str(len(vim.tabpages)))
cb.append('Current tab pages:')
def W(w):
if '(unknown)' in repr(w):
return '<window object (unknown)>'
else:
return repr(w)
for t in vim.tabpages:
cb.append(' ' + repr(t) + '(' + str(t.number) + ')' + ': ' + str(len(t.windows)) + ' windows, current is ' + W(t.window))
cb.append(' Windows:')
for w in t.windows:
cb.append(' ' + W(w) + '(' + str(w.number) + ')' + ': displays buffer ' + repr(w.buffer) + '; cursor is at ' + repr(w.cursor))
# Other values depend on the size of the terminal, so they are checked partly:
for attr in ('height', 'row', 'width', 'col'):
try:
aval = getattr(w, attr)
if type(aval) is not long:
raise TypeError
if aval < 0:
raise ValueError
except Exception:
cb.append('!!!!!! Error while getting attribute ' + attr + ': ' + sys.exc_type.__name__)
w.cursor = (len(w.buffer), 0)
cb.append('Number of windows in current tab page: ' + str(len(vim.windows)))
if list(vim.windows) != list(vim.current.tabpage.windows):
cb.append('!!!!!! Windows differ')
EOF
:"
:" Test vim.current
py << EOF
def H(o):
return repr(o)
cb.append('Current tab page: ' + repr(vim.current.tabpage))
cb.append('Current window: ' + repr(vim.current.window) + ': ' + H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))
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))
# Assigning: fails
try:
vim.current.window = vim.tabpages[0].window
except ValueError:
cb.append('ValueError at assigning foreign tab window')
for attr in ('window', 'tabpage', 'buffer'):
try:
setattr(vim.current, attr, None)
except TypeError:
cb.append('Type error at assigning None to vim.current.' + attr)
# Assigning: success
vim.current.tabpage = vim.tabpages[-2]
vim.current.buffer = cb
vim.current.window = vim.windows[0]
vim.current.window.cursor = (len(vim.current.buffer), 0)
cb.append('Current tab page: ' + repr(vim.current.tabpage))
cb.append('Current window: ' + repr(vim.current.window))
cb.append('Current buffer: ' + repr(vim.current.buffer))
cb.append('Current line: ' + repr(vim.current.line))
for b in vim.buffers:
if b is not cb:
vim.command('bwipeout! ' + b.number)
EOF
:tabonly!
:only!
:endfun
:"
:call Test()
......
......@@ -80,6 +80,7 @@ Abc
bac
def
bar
jkl
>>> paste
p/gopts1: False
p/wopts1! KeyError
......@@ -328,3 +329,33 @@ i3:<buffer test86.in>
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)>(0): displays buffer <buffer test86.in>; cursor is at (954, 0)
<tabpage 1>(2): 1 windows, current is <window object (unknown)>
Windows:
<window object (unknown)>(0): displays buffer <buffer 0>; cursor is at (1, 0)
<tabpage 2>(3): 2 windows, current is <window object (unknown)>
Windows:
<window object (unknown)>(0): displays buffer <buffer a.1>; cursor is at (1, 0)
<window object (unknown)>(0): 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'
......@@ -320,6 +320,7 @@ EOF
:let g:foo = 'bac'
:let w:abc = 'def'
:let b:baz = 'bar'
:let t:bar = 'jkl'
:try
: throw "Abc"
:catch
......@@ -328,6 +329,7 @@ EOF
:put =py3eval('vim.vars[''foo'']')
:put =py3eval('vim.current.window.vars[''abc'']')
:put =py3eval('vim.current.buffer.vars[''baz'']')
:put =py3eval('vim.current.tabpage.vars[''bar'']')
:"
:" Options
:" paste: boolean, global
......@@ -547,6 +549,78 @@ try:
except StopIteration:
cb.append('StopIteration')
EOF
:"
:" Test vim.{tabpage,window}list and vim.{tabpage,window} objects
:tabnew 0
:tabnew 1
:vnew a.1
:tabnew 2
:vnew a.2
:vnew b.2
:vnew c.2
py3 << EOF
def W(w):
if '(unknown)' in repr(w):
return '<window object (unknown)>'
else:
return repr(w)
cb.append('Number of tabs: ' + str(len(vim.tabpages)))
cb.append('Current tab pages:')
for t in vim.tabpages:
cb.append(' ' + repr(t) + '(' + str(t.number) + ')' + ': ' + str(len(t.windows)) + ' windows, current is ' + W(t.window))
cb.append(' Windows:')
for w in t.windows:
cb.append(' ' + W(w) + '(' + str(w.number) + ')' + ': displays buffer ' + repr(w.buffer) + '; cursor is at ' + repr(w.cursor))
# Other values depend on the size of the terminal, so they are checked partly:
for attr in ('height', 'row', 'width', 'col'):
try:
aval = getattr(w, attr)
if type(aval) is not int:
raise TypeError
if aval < 0:
raise ValueError
except Exception as e:
cb.append('!!!!!! Error while getting attribute ' + attr + ': ' + e.__class__.__name__)
w.cursor = (len(w.buffer), 0)
cb.append('Number of windows in current tab page: ' + str(len(vim.windows)))
if list(vim.windows) != list(vim.current.tabpage.windows):
cb.append('!!!!!! Windows differ')
EOF
:"
:" Test vim.current
py3 << EOF
def H(o):
return repr(o)
cb.append('Current tab page: ' + repr(vim.current.tabpage))
cb.append('Current window: ' + repr(vim.current.window) + ': ' + H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))
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))
# Assigning: fails
try:
vim.current.window = vim.tabpages[0].window
except ValueError:
cb.append('ValueError at assigning foreign tab window')
for attr in ('window', 'tabpage', 'buffer'):
try:
setattr(vim.current, attr, None)
except TypeError:
cb.append('Type error at assigning None to vim.current.' + attr)
# Assigning: success
vim.current.tabpage = vim.tabpages[-2]
vim.current.buffer = cb
vim.current.window = vim.windows[0]
vim.current.window.cursor = (len(vim.current.buffer), 0)
cb.append('Current tab page: ' + repr(vim.current.tabpage))
cb.append('Current window: ' + repr(vim.current.window))
cb.append('Current buffer: ' + repr(vim.current.buffer))
cb.append('Current line: ' + repr(vim.current.line))
for b in vim.buffers:
if b is not cb:
vim.command('bwipeout! ' + str(b.number))
EOF
:tabonly!
:only!
:endfun
:"
:call Test()
......
......@@ -69,6 +69,7 @@ Abc
bac
def
bar
jkl
>>> paste
p/gopts1: False
p/wopts1! KeyError
......@@ -317,3 +318,33 @@ i3:<buffer test87.in>
i4:<buffer test87.in>
i4:<buffer test87.in>
StopIteration
Number of tabs: 4
Current tab pages:
<tabpage 0>(1): 1 windows, current is <window object (unknown)>
Windows:
<window object (unknown)>(0): displays buffer <buffer test87.in>; cursor is at (929, 0)
<tabpage 1>(2): 1 windows, current is <window object (unknown)>
Windows:
<window object (unknown)>(0): displays buffer <buffer 0>; cursor is at (1, 0)
<tabpage 2>(3): 2 windows, current is <window object (unknown)>
Windows:
<window object (unknown)>(0): displays buffer <buffer a.1>; cursor is at (1, 0)
<window object (unknown)>(0): 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 test87.in>
Current line: 'Type error at assigning None to vim.current.buffer'
......@@ -728,6 +728,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
955,
/**/
954,
/**/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment