diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-05-15 16:27:37 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-05-15 16:27:37 +0200 |
commit | a4720019cfca02fa0c04358daa562334bb716d57 (patch) | |
tree | 4ac1193b0f720ad31a51a33b0f4fc9ef68c902f1 /src/testdir | |
parent | b983f75d228accb62fb07eff94c16a3a76f59498 (diff) | |
download | vim-a4720019cfca02fa0c04358daa562334bb716d57.zip |
updated for version 7.3.955
Problem: Python: Not enough tests.
Solution: Add tests for vim.{current,window*,tabpage*}. (ZyX)
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test86.in | 74 | ||||
-rw-r--r-- | src/testdir/test86.ok | 31 | ||||
-rw-r--r-- | src/testdir/test87.in | 74 | ||||
-rw-r--r-- | src/testdir/test87.ok | 31 |
4 files changed, 210 insertions, 0 deletions
diff --git a/src/testdir/test86.in b/src/testdir/test86.in index 8ef7e057f..43f2a5451 100644 --- a/src/testdir/test86.in +++ b/src/testdir/test86.in @@ -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() diff --git a/src/testdir/test86.ok b/src/testdir/test86.ok index dd08b3749..7217d55da 100644 --- a/src/testdir/test86.ok +++ b/src/testdir/test86.ok @@ -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' diff --git a/src/testdir/test87.in b/src/testdir/test87.in index f9b8a65fd..7d8ba3c3b 100644 --- a/src/testdir/test87.in +++ b/src/testdir/test87.in @@ -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() diff --git a/src/testdir/test87.ok b/src/testdir/test87.ok index d7fb06b7f..a37bd7226 100644 --- a/src/testdir/test87.ok +++ b/src/testdir/test87.ok @@ -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' |