annotate src/testdir/test_python3.vim @ 34686:83875247fbc0 v9.1.0224

patch 9.1.0224: cursor may move too many lines over "right" & "below" virt text Commit: https://github.com/vim/vim/commit/515f734e687f28f7199b2a8042197624d9f3ec15 Author: Dylan Thacker-Smith <dylan.ah.smith@gmail.com> Date: Thu Mar 28 12:01:14 2024 +0100 patch 9.1.0224: cursor may move too many lines over "right" & "below" virt text Problem: If a line has "right" & "below" virtual text properties, where the "below" property may be stored first due to lack of ordering between them, then the line height is calculated to be 1 more and causes the cursor to far over the line. Solution: Remove some unnecessary setting of a `next_right_goes_below = TRUE` flag for "below" and "above" text properties. (Dylan Thacker-Smith) I modified a regression test I recently added to cover this case, leveraging the fact that "after", "right" & "below" text properties are being stored in the reverse of the order they are added in. The previous version of this regression test was crafted to workaround this issue so it can be addressed by this separate patch. closes: #14317 Signed-off-by: Dylan Thacker-Smith <dylan.ah.smith@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 28 Mar 2024 12:15:03 +0100
parents daaff6843090
children 58d45aef1dd9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14395
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
1 " Test for python 3 commands.
10751
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
17089
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
3 source check.vim
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
4 CheckFeature python3
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
5 source shared.vim
10751
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6
21977
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
7 func Create_vim_list()
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
8 return [1]
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
9 endfunction
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
10
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
11 func Create_vim_dict()
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
12 return {'a': 1}
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
13 endfunction
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
14
25903
eb6e4f0ba31d patch 8.2.3485: Python 3 test fails with Python 3.10
Bram Moolenaar <Bram@vim.org>
parents: 24685
diff changeset
15 let s:system_error_pat = 'Vim(py3):SystemError: \(<built-in function eval> returned NULL without setting an \(error\|exception\)\|error return without exception set\)'
21977
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
16
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
17 " This function should be called first. This sets up python functions used by
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
18 " the other tests.
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
19 func Test_AAA_python3_setup()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
20 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
21 import vim
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
22 import sys
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
23 import re
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
24
32739
d044abdf4cd3 patch 9.0.1689: python 3.12 produces warnings and fails test
Christian Brabandt <cb@256bit.org>
parents: 32096
diff changeset
25 py33_type_error_pattern = re.compile(r'^__call__\(\) takes (\d+) positional argument but (\d+) were given$')
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
26 py37_exception_repr = re.compile(r'([^\(\),])(\)+)$')
32739
d044abdf4cd3 patch 9.0.1689: python 3.12 produces warnings and fails test
Christian Brabandt <cb@256bit.org>
parents: 32096
diff changeset
27 py39_type_error_pattern = re.compile(r'\w+\.([^(]+\(\) takes)')
d044abdf4cd3 patch 9.0.1689: python 3.12 produces warnings and fails test
Christian Brabandt <cb@256bit.org>
parents: 32096
diff changeset
28 py310_type_error_pattern = re.compile(r'takes (\d+) positional argument but (\d+) were given')
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
29
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
30 def emsg(ei):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
31 return ei[0].__name__ + ':' + repr(ei[1].args)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
32
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
33 def ee(expr, g=globals(), l=locals()):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
34 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
35 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
36 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
37 exec(expr, g, l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
38 except Exception as e:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
39 if sys.version_info >= (3, 3) and e.__class__ is AttributeError and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
40 msg = repr((e.__class__, AttributeError(str(e)[str(e).rfind(" '") + 2:-1])))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
41 elif sys.version_info >= (3, 3) and e.__class__ is ImportError and str(e).find('No module named \'') >= 0:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
42 msg = repr((e.__class__, ImportError(str(e).replace("'", ''))))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
43 elif sys.version_info >= (3, 6) and e.__class__ is ModuleNotFoundError:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
44 # Python 3.6 gives ModuleNotFoundError, change it to an ImportError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
45 msg = repr((ImportError, ImportError(str(e).replace("'", ''))))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
46 elif sys.version_info >= (3, 3) and e.__class__ is TypeError:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
47 m = py33_type_error_pattern.search(str(e))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
48 if m:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
49 msg = '__call__() takes exactly {0} positional argument ({1} given)'.format(m.group(1), m.group(2))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
50 msg = repr((e.__class__, TypeError(msg)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
51 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
52 msg = repr((e.__class__, e))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
53 # Messages changed with Python 3.6, change new to old.
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
54 newmsg1 = """'argument must be str, bytes or bytearray, not None'"""
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
55 oldmsg1 = '''"Can't convert 'NoneType' object to str implicitly"'''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
56 if msg.find(newmsg1) > -1:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
57 msg = msg.replace(newmsg1, oldmsg1)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
58 newmsg2 = """'argument must be str, bytes or bytearray, not int'"""
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
59 oldmsg2 = '''"Can't convert 'int' object to str implicitly"'''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
60 if msg.find(newmsg2) > -1:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
61 msg = msg.replace(newmsg2, oldmsg2)
22728
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
62 # Python 3.9 reports errors like "vim.command() takes ..." instead of "command() takes ..."
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
63 msg = py39_type_error_pattern.sub(r'\1', msg)
26139
97b4e8c55c1d patch 8.2.3602: Python3 test fails with Python 3.10 on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 25903
diff changeset
64 msg = py310_type_error_pattern.sub(r'takes exactly \1 positional argument (\2 given)', msg)
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
65 elif sys.version_info >= (3, 5) and e.__class__ is ValueError and str(e) == 'embedded null byte':
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
66 msg = repr((TypeError, TypeError('expected bytes with no null')))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
67 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
68 msg = repr((e.__class__, e))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
69 # Some Python versions say can't, others cannot.
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
70 if msg.find('can\'t') > -1:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
71 msg = msg.replace('can\'t', 'cannot')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
72 # Some Python versions use single quote, some double quote
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
73 if msg.find('"cannot ') > -1:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
74 msg = msg.replace('"cannot ', '\'cannot ')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
75 if msg.find(' attributes"') > -1:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
76 msg = msg.replace(' attributes"', ' attributes\'')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
77 if sys.version_info >= (3, 7):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
78 msg = py37_exception_repr.sub(r'\1,\2', msg)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
79 cb.append(expr + ':' + msg)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
80 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
81 cb.append(expr + ':NOT FAILED')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
82 except Exception as e:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
83 msg = repr((e.__class__, e))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
84 if sys.version_info >= (3, 7):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
85 msg = py37_exception_repr.sub(r'\1,\2', msg)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
86 cb.append(expr + '::' + msg)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
87 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
88 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
89
10751
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
90 func Test_py3do()
34234
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
91 new
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
92
10751
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
93 " Check deleting lines does not trigger an ml_get error.
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
94 call setline(1, ['one', 'two', 'three'])
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
95 py3do vim.command("%d_")
34234
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
96 call assert_equal([''], getline(1, '$'))
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
97
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
98 call setline(1, ['one', 'two', 'three'])
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
99 py3do vim.command("1,2d_")
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
100 call assert_equal(['three'], getline(1, '$'))
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
101
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
102 call setline(1, ['one', 'two', 'three'])
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
103 py3do vim.command("2,3d_"); return "REPLACED"
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
104 call assert_equal(['REPLACED'], getline(1, '$'))
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
105
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
106 call setline(1, ['one', 'two', 'three'])
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
107 2,3py3do vim.command("1,2d_"); return "REPLACED"
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
108 call assert_equal(['three'], getline(1, '$'))
daaff6843090 patch 9.1.0062: Internal error when :luado/perldo/pydo etc delete lines
Christian Brabandt <cb@256bit.org>
parents: 32739
diff changeset
109
10751
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
110 bwipe!
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
111
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
112 " Check switching to another buffer does not trigger an ml_get error.
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
113 new
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
114 let wincount = winnr('$')
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
115 call setline(1, ['one', 'two', 'three'])
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
116 py3do vim.command("new")
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
117 call assert_equal(wincount + 1, winnr('$'))
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
118 bwipe!
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
119 bwipe!
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
120
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
121 " Try modifying a buffer with 'nomodifiable' set
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
122 set nomodifiable
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21200
diff changeset
123 call assert_fails('py3do toupper(line)', 'E21:')
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
124 set modifiable
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
125
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
126 " Invalid command
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
127 call AssertException(['py3do non_existing_cmd'],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
128 \ "Vim(py3do):NameError: name 'non_existing_cmd' is not defined")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
129 call AssertException(["py3do raise Exception('test')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
130 \ 'Vim(py3do):Exception: test')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
131 call AssertException(["py3do {lambda}"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
132 \ 'Vim(py3do):SyntaxError: invalid syntax')
10751
27b42717662b patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
133 endfunc
14395
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
134
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
135 func Test_set_cursor()
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
136 " Check that setting the cursor position works.
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
137 new
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
138 call setline(1, ['first line', 'second line'])
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
139 normal gg
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
140 py3do vim.current.window.cursor = (1, 5)
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
141 call assert_equal([1, 6], [line('.'), col('.')])
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
142
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
143 " Check that movement after setting cursor position keeps current column.
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
144 normal j
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
145 call assert_equal([2, 6], [line('.'), col('.')])
c15bef307de6 patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents: 10751
diff changeset
146 endfunc
15234
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
147
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
148 func Test_vim_function()
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
149 " Check creating vim.Function object
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
150
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
151 func s:foo()
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
152 return matchstr(expand('<sfile>'), '<SNR>\zs\d\+_foo$')
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
153 endfunc
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
154 let name = '<SNR>' . s:foo()
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
155
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
156 try
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
157 py3 f = vim.bindeval('function("s:foo")')
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
158 call assert_equal(name, py3eval('f.name'))
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
159 catch
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
160 call assert_false(v:exception)
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
161 endtry
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
162
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
163 try
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
164 py3 f = vim.Function(b'\x80\xfdR' + vim.eval('s:foo()').encode())
17976
6d11a0d5751d patch 8.1.1984: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
165 call assert_equal(name, 'f.name'->py3eval())
15234
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
166 catch
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
167 call assert_false(v:exception)
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
168 endtry
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
169
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
170 " Non-existing function attribute
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
171 call AssertException(["let x = py3eval('f.abc')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
172 \ "Vim(let):AttributeError: 'vim.function' object has no attribute 'abc'")
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
173
15234
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
174 py3 del f
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
175 delfunc s:foo
ee63f4fe3d45 patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents: 14395
diff changeset
176 endfunc
15888
a83c4b1f8ea2 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Bram Moolenaar <Bram@vim.org>
parents: 15234
diff changeset
177
a83c4b1f8ea2 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Bram Moolenaar <Bram@vim.org>
parents: 15234
diff changeset
178 func Test_skipped_python3_command_does_not_affect_pyxversion()
a83c4b1f8ea2 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Bram Moolenaar <Bram@vim.org>
parents: 15234
diff changeset
179 set pyxversion=0
a83c4b1f8ea2 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Bram Moolenaar <Bram@vim.org>
parents: 15234
diff changeset
180 if 0
a83c4b1f8ea2 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Bram Moolenaar <Bram@vim.org>
parents: 15234
diff changeset
181 python3 import vim
a83c4b1f8ea2 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Bram Moolenaar <Bram@vim.org>
parents: 15234
diff changeset
182 endif
a83c4b1f8ea2 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Bram Moolenaar <Bram@vim.org>
parents: 15234
diff changeset
183 call assert_equal(0, &pyxversion) " This assertion would have failed with Vim 8.0.0251. (pyxversion was introduced in 8.0.0251.)
a83c4b1f8ea2 patch 8.1.0950: using :python sets 'pyxversion' even when not executed
Bram Moolenaar <Bram@vim.org>
parents: 15234
diff changeset
184 endfunc
16080
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
185
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
186 func _SetUpHiddenBuffer()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
187 new
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
188 edit hidden
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
189 setlocal bufhidden=hide
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
190
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
191 enew
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
192 let lnum = 0
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
193 while lnum < 10
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
194 call append( 1, string( lnum ) )
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
195 let lnum = lnum + 1
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
196 endwhile
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
197 normal G
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
198
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
199 call assert_equal( line( '.' ), 11 )
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
200 endfunc
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
201
16138
402b714cb919 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 16080
diff changeset
202 func _CleanUpHiddenBuffer()
402b714cb919 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 16080
diff changeset
203 bwipe! hidden
402b714cb919 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 16080
diff changeset
204 bwipe!
402b714cb919 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 16080
diff changeset
205 endfunc
402b714cb919 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 16080
diff changeset
206
16080
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
207 func Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_Clear()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
208 call _SetUpHiddenBuffer()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
209 py3 vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][:] = None
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
210 call assert_equal( line( '.' ), 11 )
16138
402b714cb919 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 16080
diff changeset
211 call _CleanUpHiddenBuffer()
16080
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
212 endfunc
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
213
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
214 func Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_List()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
215 call _SetUpHiddenBuffer()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
216 py3 vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][:] = [ 'test' ]
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
217 call assert_equal( line( '.' ), 11 )
16138
402b714cb919 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 16080
diff changeset
218 call _CleanUpHiddenBuffer()
16080
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
219 endfunc
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
220
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
221 func Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_Str()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
222 call _SetUpHiddenBuffer()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
223 py3 vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][0] = 'test'
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
224 call assert_equal( line( '.' ), 11 )
16138
402b714cb919 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 16080
diff changeset
225 call _CleanUpHiddenBuffer()
16080
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
226 endfunc
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
227
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
228 func Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_ClearLine()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
229 call _SetUpHiddenBuffer()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
230 py3 vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][0] = None
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
231 call assert_equal( line( '.' ), 11 )
16138
402b714cb919 patch 8.1.1074: Python test doesn't wipe out hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 16080
diff changeset
232 call _CleanUpHiddenBuffer()
16080
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
233 endfunc
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
234
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
235 func _SetUpVisibleBuffer()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
236 new
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
237 let lnum = 0
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
238 while lnum < 10
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
239 call append( 1, string( lnum ) )
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
240 let lnum = lnum + 1
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
241 endwhile
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
242 normal G
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
243 call assert_equal( line( '.' ), 11 )
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
244 endfunc
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
245
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
246 func Test_Write_To_Current_Buffer_Fixes_Cursor_Clear()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
247 call _SetUpVisibleBuffer()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
248
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
249 py3 vim.current.buffer[:] = None
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
250 call assert_equal( line( '.' ), 1 )
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
251
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
252 bwipe!
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
253 endfunc
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
254
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
255 func Test_Write_To_Current_Buffer_Fixes_Cursor_List()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
256 call _SetUpVisibleBuffer()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
257
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
258 py3 vim.current.buffer[:] = [ 'test' ]
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
259 call assert_equal( line( '.' ), 1 )
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
260
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
261 bwipe!
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
262 endfunc
16080
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
263
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
264 func Test_Write_To_Current_Buffer_Fixes_Cursor_Str()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
265 call _SetUpVisibleBuffer()
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
266
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
267 py3 vim.current.buffer[-1] = None
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
268 call assert_equal( line( '.' ), 10 )
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
269
bf8cf5c3b784 patch 8.1.1045: E315 ml_get error when using Python and hidden buffer
Bram Moolenaar <Bram@vim.org>
parents: 15888
diff changeset
270 bwipe!
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
271 endfunc
16688
e791f29affae patch 8.1.1346: error for Python exception does not show useful info
Bram Moolenaar <Bram@vim.org>
parents: 16138
diff changeset
272
e791f29affae patch 8.1.1346: error for Python exception does not show useful info
Bram Moolenaar <Bram@vim.org>
parents: 16138
diff changeset
273 func Test_Catch_Exception_Message()
e791f29affae patch 8.1.1346: error for Python exception does not show useful info
Bram Moolenaar <Bram@vim.org>
parents: 16138
diff changeset
274 try
e791f29affae patch 8.1.1346: error for Python exception does not show useful info
Bram Moolenaar <Bram@vim.org>
parents: 16138
diff changeset
275 py3 raise RuntimeError( 'TEST' )
e791f29affae patch 8.1.1346: error for Python exception does not show useful info
Bram Moolenaar <Bram@vim.org>
parents: 16138
diff changeset
276 catch /.*/
e791f29affae patch 8.1.1346: error for Python exception does not show useful info
Bram Moolenaar <Bram@vim.org>
parents: 16138
diff changeset
277 call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception )
e791f29affae patch 8.1.1346: error for Python exception does not show useful info
Bram Moolenaar <Bram@vim.org>
parents: 16138
diff changeset
278 endtry
e791f29affae patch 8.1.1346: error for Python exception does not show useful info
Bram Moolenaar <Bram@vim.org>
parents: 16138
diff changeset
279 endfunc
19015
a3d9a5e14c1f patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Bram Moolenaar <Bram@vim.org>
parents: 18870
diff changeset
280
a3d9a5e14c1f patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Bram Moolenaar <Bram@vim.org>
parents: 18870
diff changeset
281 func Test_unicode()
a3d9a5e14c1f patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Bram Moolenaar <Bram@vim.org>
parents: 18870
diff changeset
282 " this crashed Vim once
19029
8aa4ba1f9345 patch 8.2.0075: Python 3 unicode test still sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 19027
diff changeset
283 if &tenc != ''
8aa4ba1f9345 patch 8.2.0075: Python 3 unicode test still sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 19027
diff changeset
284 throw "Skipped: 'termencoding' is not empty"
8aa4ba1f9345 patch 8.2.0075: Python 3 unicode test still sometimes fails
Bram Moolenaar <Bram@vim.org>
parents: 19027
diff changeset
285 endif
19027
d72b30bf3a80 patch 8.2.0074: Python 3 unicode test someitmes fails
Bram Moolenaar <Bram@vim.org>
parents: 19019
diff changeset
286
19015
a3d9a5e14c1f patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Bram Moolenaar <Bram@vim.org>
parents: 18870
diff changeset
287 set encoding=utf32
a3d9a5e14c1f patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Bram Moolenaar <Bram@vim.org>
parents: 18870
diff changeset
288 py3 print('hello')
19027
d72b30bf3a80 patch 8.2.0074: Python 3 unicode test someitmes fails
Bram Moolenaar <Bram@vim.org>
parents: 19019
diff changeset
289
19031
9cad3d0c34b3 patch 8.2.0076: Python 3 unicode test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 19029
diff changeset
290 if !has('win32')
9cad3d0c34b3 patch 8.2.0076: Python 3 unicode test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 19029
diff changeset
291 set encoding=debug
9cad3d0c34b3 patch 8.2.0076: Python 3 unicode test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 19029
diff changeset
292 py3 print('hello')
19037
9bb2a4f6296a patch 8.2.0079: Python 3 unicode test still fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 19031
diff changeset
293
9bb2a4f6296a patch 8.2.0079: Python 3 unicode test still fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 19031
diff changeset
294 set encoding=euc-tw
9bb2a4f6296a patch 8.2.0079: Python 3 unicode test still fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 19031
diff changeset
295 py3 print('hello')
19031
9cad3d0c34b3 patch 8.2.0076: Python 3 unicode test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 19029
diff changeset
296 endif
19027
d72b30bf3a80 patch 8.2.0074: Python 3 unicode test someitmes fails
Bram Moolenaar <Bram@vim.org>
parents: 19019
diff changeset
297
19015
a3d9a5e14c1f patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Bram Moolenaar <Bram@vim.org>
parents: 18870
diff changeset
298 set encoding=utf8
a3d9a5e14c1f patch 8.2.0068: crash when using Python 3 with "utf32" encoding
Bram Moolenaar <Bram@vim.org>
parents: 18870
diff changeset
299 endfunc
19141
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
300
19499
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
301 " Test vim.eval() with various types.
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
302 func Test_python3_vim_val()
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
303 call assert_equal("\n8", execute('py3 print(vim.eval("3+5"))'))
30310
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
304 call assert_equal("\n3.140000", execute('py3 print(vim.eval("1.01+2.13"))'))
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
305 call assert_equal("\n0.000000", execute('py3 print(vim.eval("0.0/(1.0/0.0)"))'))
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
306 call assert_equal("\n0.000000", execute('py3 print(vim.eval("0.0/(1.0/0.0)"))'))
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
307 call assert_equal("\n-0.000000", execute('py3 print(vim.eval("0.0/(-1.0/0.0)"))'))
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
308 " Commented out: output of infinity and nan depend on platforms.
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
309 " call assert_equal("\ninf", execute('py3 print(vim.eval("1.0/0.0"))'))
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
310 " call assert_equal("\n-inf", execute('py3 print(vim.eval("-1.0/0.0"))'))
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
311 " call assert_equal("\n-nan", execute('py3 print(vim.eval("0.0/0.0"))'))
19499
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
312 call assert_equal("\nabc", execute('py3 print(vim.eval("\"abc\""))'))
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
313 call assert_equal("\n['1', '2']", execute('py3 print(vim.eval("[1, 2]"))'))
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
314 call assert_equal("\n{'1': '2'}", execute('py3 print(vim.eval("{1:2}"))'))
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
315 call assert_equal("\nTrue", execute('py3 print(vim.eval("v:true"))'))
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
316 call assert_equal("\nFalse", execute('py3 print(vim.eval("v:false"))'))
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
317 call assert_equal("\nNone", execute('py3 print(vim.eval("v:null"))'))
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
318 call assert_equal("\nNone", execute('py3 print(vim.eval("v:none"))'))
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
319 call assert_equal("\nb'\\xab\\x12'", execute('py3 print(vim.eval("0zab12"))'))
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
320
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21200
diff changeset
321 call assert_fails('py3 vim.eval("1+")', 'E15: Invalid expression')
19499
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
322 endfunc
f22626353eb3 patch 8.2.0307: Python 3 vim.eval not well tested
Bram Moolenaar <Bram@vim.org>
parents: 19201
diff changeset
323
19141
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
324 " Test range objects, see :help python-range
19201
e7b4fff348dd patch 8.2.0159: non-materialized range() list causes problems
Bram Moolenaar <Bram@vim.org>
parents: 19141
diff changeset
325 func Test_python3_range()
19141
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
326 new
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
327 py3 b = vim.current.buffer
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
328
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
329 call setline(1, range(1, 6))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
330 py3 r = b.range(2, 4)
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
331 call assert_equal(6, py3eval('len(b)'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
332 call assert_equal(3, py3eval('len(r)'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
333 call assert_equal('3', py3eval('b[2]'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
334 call assert_equal('4', py3eval('r[2]'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
335
21265
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21200
diff changeset
336 call assert_fails('py3 r[3] = "x"', ['Traceback', 'IndexError: line number out of range'])
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21200
diff changeset
337 call assert_fails('py3 x = r[3]', ['Traceback', 'IndexError: line number out of range'])
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21200
diff changeset
338 call assert_fails('py3 r["a"] = "x"', ['Traceback', 'TypeError: index must be int or slice, not str'])
6a4806e326dd patch 8.2.1183: assert_fails() checks the last error message
Bram Moolenaar <Bram@vim.org>
parents: 21200
diff changeset
339 call assert_fails('py3 x = r["a"]', ['Traceback', 'TypeError: index must be int or slice, not str'])
19141
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
340
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
341 py3 del r[:]
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
342 call assert_equal(['1', '5', '6'], getline(1, '$'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
343
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
344 %d | call setline(1, range(1, 6))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
345 py3 r = b.range(2, 5)
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
346 py3 del r[2]
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
347 call assert_equal(['1', '2', '3', '5', '6'], getline(1, '$'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
348
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
349 %d | call setline(1, range(1, 6))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
350 py3 r = b.range(2, 4)
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
351 py3 vim.command("%d,%dnorm Ax" % (r.start + 1, r.end + 1))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
352 call assert_equal(['1', '2x', '3x', '4x', '5', '6'], getline(1, '$'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
353
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
354 %d | call setline(1, range(1, 4))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
355 py3 r = b.range(2, 3)
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
356 py3 r.append(['a', 'b'])
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
357 call assert_equal(['1', '2', '3', 'a', 'b', '4'], getline(1, '$'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
358 py3 r.append(['c', 'd'], 0)
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
359 call assert_equal(['1', 'c', 'd', '2', '3', 'a', 'b', '4'], getline(1, '$'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
360
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
361 %d | call setline(1, range(1, 5))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
362 py3 r = b.range(2, 4)
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
363 py3 r.append('a')
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
364 call assert_equal(['1', '2', '3', '4', 'a', '5'], getline(1, '$'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
365 py3 r.append('b', 1)
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
366 call assert_equal(['1', '2', 'b', '3', '4', 'a', '5'], getline(1, '$'))
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
367
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
368 bwipe!
2c7d60b1bfa9 patch 8.2.0130: Python3 ranges are not tested
Bram Moolenaar <Bram@vim.org>
parents: 19037
diff changeset
369 endfunc
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
370
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
371 " Test for resetting options with local values to global values
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
372 func Test_python3_opt_reset_local_to_global()
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
373 new
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
374
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
375 py3 curbuf = vim.current.buffer
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
376 py3 curwin = vim.current.window
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
377
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
378 " List of buffer-local options. Each list item has [option name, global
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
379 " value, buffer-local value, buffer-local value after reset] to use in the
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
380 " test.
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
381 let bopts = [
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
382 \ ['autoread', 1, 0, -1],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
383 \ ['equalprg', 'geprg', 'leprg', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
384 \ ['keywordprg', 'gkprg', 'lkprg', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
385 \ ['path', 'gpath', 'lpath', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
386 \ ['backupcopy', 'yes', 'no', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
387 \ ['tags', 'gtags', 'ltags', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
388 \ ['tagcase', 'ignore', 'match', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
389 \ ['define', 'gdef', 'ldef', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
390 \ ['include', 'ginc', 'linc', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
391 \ ['dict', 'gdict', 'ldict', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
392 \ ['thesaurus', 'gtsr', 'ltsr', ''],
32096
e7ab58f57ea3 patch 9.0.1379: functions for handling options are not ordered
Bram Moolenaar <Bram@vim.org>
parents: 31422
diff changeset
393 \ ['thesaurusfunc', 'Gtsrfu', 'Ltsrfu', ''],
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
394 \ ['formatprg', 'gfprg', 'lfprg', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
395 \ ['errorformat', '%f:%l:%m', '%s-%l-%m', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
396 \ ['grepprg', 'ggprg', 'lgprg', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
397 \ ['makeprg', 'gmprg', 'lmprg', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
398 \ ['cryptmethod', 'blowfish2', 'zip', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
399 \ ['lispwords', 'abc', 'xyz', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
400 \ ['makeencoding', 'utf-8', 'latin1', ''],
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
401 \ ['undolevels', 100, 200, -123456]]
29020
b9b8422ad671 patch 8.2.5032: Python 3 test fails without the GUI
Bram Moolenaar <Bram@vim.org>
parents: 28950
diff changeset
402 if has('balloon_eval')
b9b8422ad671 patch 8.2.5032: Python 3 test fails without the GUI
Bram Moolenaar <Bram@vim.org>
parents: 28950
diff changeset
403 call add(bopts, ['balloonexpr', 'gbexpr', 'lbexpr', ''])
b9b8422ad671 patch 8.2.5032: Python 3 test fails without the GUI
Bram Moolenaar <Bram@vim.org>
parents: 28950
diff changeset
404 endif
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
405
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
406 " Set the global and buffer-local option values and then clear the
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
407 " buffer-local option value.
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
408 for opt in bopts
20045
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
409 py3 << trim END
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
410 pyopt = vim.bindeval("opt")
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
411 vim.options[pyopt[0]] = pyopt[1]
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
412 curbuf.options[pyopt[0]] = pyopt[2]
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
413 END
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
414 exe "call assert_equal(opt[2], &" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
415 exe "call assert_equal(opt[1], &g:" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
416 exe "call assert_equal(opt[2], &l:" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
417 py3 del curbuf.options[pyopt[0]]
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
418 exe "call assert_equal(opt[1], &" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
419 exe "call assert_equal(opt[1], &g:" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
420 exe "call assert_equal(opt[3], &l:" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
421 exe "set " .. opt[0] .. "&"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
422 endfor
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
423
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
424 " Set the global and window-local option values and then clear the
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
425 " window-local option value.
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
426 let wopts = [
32096
e7ab58f57ea3 patch 9.0.1379: functions for handling options are not ordered
Bram Moolenaar <Bram@vim.org>
parents: 31422
diff changeset
427 \ ['fillchars', 'fold:>', 'fold:+', ''],
e7ab58f57ea3 patch 9.0.1379: functions for handling options are not ordered
Bram Moolenaar <Bram@vim.org>
parents: 31422
diff changeset
428 \ ['listchars', 'tab:>>', 'tab:--', ''],
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
429 \ ['scrolloff', 5, 10, -1],
32096
e7ab58f57ea3 patch 9.0.1379: functions for handling options are not ordered
Bram Moolenaar <Bram@vim.org>
parents: 31422
diff changeset
430 \ ['showbreak', '>>', '++', ''],
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
431 \ ['sidescrolloff', 6, 12, -1],
32096
e7ab58f57ea3 patch 9.0.1379: functions for handling options are not ordered
Bram Moolenaar <Bram@vim.org>
parents: 31422
diff changeset
432 \ ['statusline', '%<%f', '%<%F', ''],
e7ab58f57ea3 patch 9.0.1379: functions for handling options are not ordered
Bram Moolenaar <Bram@vim.org>
parents: 31422
diff changeset
433 \ ['virtualedit', 'block', 'insert', '']]
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
434 for opt in wopts
20045
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
435 py3 << trim
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
436 pyopt = vim.bindeval("opt")
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
437 vim.options[pyopt[0]] = pyopt[1]
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
438 curwin.options[pyopt[0]] = pyopt[2]
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
439 .
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
440 exe "call assert_equal(opt[2], &" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
441 exe "call assert_equal(opt[1], &g:" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
442 exe "call assert_equal(opt[2], &l:" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
443 py3 del curwin.options[pyopt[0]]
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
444 exe "call assert_equal(opt[1], &" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
445 exe "call assert_equal(opt[1], &g:" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
446 exe "call assert_equal(opt[3], &l:" .. opt[0] .. ")"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
447 exe "set " .. opt[0] .. "&"
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
448 endfor
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
449
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
450 close!
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
451 endfunc
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
452
20045
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
453 " Test for various heredoc syntax
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
454 func Test_python3_heredoc()
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
455 python3 << END
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
456 s='A'
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
457 END
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
458 python3 <<
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
459 s+='B'
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
460 .
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
461 python3 << trim END
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
462 s+='C'
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
463 END
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
464 python3 << trim
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
465 s+='D'
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
466 .
20233
5f9c2c7d3d73 patch 8.2.0672: heredoc in scripts does not accept lower case marker
Bram Moolenaar <Bram@vim.org>
parents: 20045
diff changeset
467 python3 << trim eof
5f9c2c7d3d73 patch 8.2.0672: heredoc in scripts does not accept lower case marker
Bram Moolenaar <Bram@vim.org>
parents: 20045
diff changeset
468 s+='E'
5f9c2c7d3d73 patch 8.2.0672: heredoc in scripts does not accept lower case marker
Bram Moolenaar <Bram@vim.org>
parents: 20045
diff changeset
469 eof
5f9c2c7d3d73 patch 8.2.0672: heredoc in scripts does not accept lower case marker
Bram Moolenaar <Bram@vim.org>
parents: 20045
diff changeset
470 call assert_equal('ABCDE', pyxeval('s'))
20045
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
471 endfunc
04ef2ccf2519 patch 8.2.0578: heredoc for interfaces does not support "trim"
Bram Moolenaar <Bram@vim.org>
parents: 19991
diff changeset
472
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
473 " Test for the buffer range object
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
474 func Test_python3_range2()
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
475 new
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
476 call setline(1, ['one', 'two', 'three'])
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
477 py3 b = vim.current.buffer
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
478 py3 r = b.range(1, 3)
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
479 call assert_equal(0, py3eval('r.start'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
480 call assert_equal(2, py3eval('r.end'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
481 call assert_equal('one', py3eval('r[0]'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
482 call assert_equal('one', py3eval('r[-3]'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
483 call AssertException(["let x = py3eval('r[-4]')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
484 \ 'Vim(let):IndexError: line number out of range')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
485 call assert_equal(['two', 'three'], py3eval('r[1:]'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
486 py3 r[0] = 'green'
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
487 call assert_equal(['green', 'two', 'three'], getline(1, '$'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
488 py3 r[0:2] = ['red', 'blue']
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
489 call assert_equal(['red', 'blue', 'three'], getline(1, '$'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
490
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
491 " try different invalid start/end index for the range slice
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
492 %d
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
493 call setline(1, ['one', 'two', 'three'])
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
494 py3 r[-10:1] = ["a"]
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
495 py3 r[10:12] = ["b"]
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
496 py3 r[-10:-9] = ["c"]
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
497 py3 r[1:0] = ["d"]
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
498 call assert_equal(['c', 'd', 'a', 'two', 'three', 'b'], getline(1, '$'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
499
21198
8531ddd7dd63 patch 8.2.1150: ml_get error when using Python
Bram Moolenaar <Bram@vim.org>
parents: 21190
diff changeset
500 " The following code used to trigger an ml_get error
8531ddd7dd63 patch 8.2.1150: ml_get error when using Python
Bram Moolenaar <Bram@vim.org>
parents: 21190
diff changeset
501 %d
8531ddd7dd63 patch 8.2.1150: ml_get error when using Python
Bram Moolenaar <Bram@vim.org>
parents: 21190
diff changeset
502 let x = py3eval('r[:]')
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
503
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
504 " Non-existing range attribute
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
505 call AssertException(["let x = py3eval('r.abc')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
506 \ "Vim(let):AttributeError: 'vim.range' object has no attribute 'abc'")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
507
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
508 close!
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
509 endfunc
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
510
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
511 " Test for the python tabpage object
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
512 func Test_python3_tabpage()
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
513 tabnew
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
514 py3 t = vim.tabpages[1]
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
515 py3 wl = t.windows
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
516 tabclose
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
517 " Accessing a closed tabpage
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
518 call AssertException(["let n = py3eval('t.number')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
519 \ 'Vim(let):vim.error: attempt to refer to deleted tab page')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
520 call AssertException(["let n = py3eval('len(wl)')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
521 \ 'Vim(let):vim.error: attempt to refer to deleted tab page')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
522 call AssertException(["py3 w = wl[0]"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
523 \ 'Vim(py3):vim.error: attempt to refer to deleted tab page')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
524 call AssertException(["py3 vim.current.tabpage = t"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
525 \ 'Vim(py3):vim.error: attempt to refer to deleted tab page')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
526 call assert_match('<tabpage object (deleted)', py3eval('repr(t)'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
527 %bw!
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
528 endfunc
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
529
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
530 " Test for the python window object
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
531 func Test_python3_window()
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
532 " Test for setting the window height
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
533 10new
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
534 py3 vim.current.window.height = 5
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
535 call assert_equal(5, winheight(0))
24685
04205b7d67d5 patch 8.2.2881: various pieces of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24667
diff changeset
536 py3 vim.current.window.height = 3.2
04205b7d67d5 patch 8.2.2881: various pieces of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 24667
diff changeset
537 call assert_equal(3, winheight(0))
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
538
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
539 " Test for setting the window width
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
540 10vnew
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
541 py3 vim.current.window.width = 6
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
542 call assert_equal(6, winwidth(0))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
543
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
544 " Try accessing a closed window
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
545 py3 w = vim.current.window
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
546 py3 wopts = w.options
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
547 close
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
548 " Access the attributes of a closed window
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
549 call AssertException(["let n = py3eval('w.number')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
550 \ 'Vim(let):vim.error: attempt to refer to deleted window')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
551 call AssertException(["py3 w.height = 5"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
552 \ 'Vim(py3):vim.error: attempt to refer to deleted window')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
553 call AssertException(["py3 vim.current.window = w"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
554 \ 'Vim(py3):vim.error: attempt to refer to deleted window')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
555 " Try to set one of the options of the closed window
21198
8531ddd7dd63 patch 8.2.1150: ml_get error when using Python
Bram Moolenaar <Bram@vim.org>
parents: 21190
diff changeset
556 " The following caused ASAN failure
8531ddd7dd63 patch 8.2.1150: ml_get error when using Python
Bram Moolenaar <Bram@vim.org>
parents: 21190
diff changeset
557 call AssertException(["py3 wopts['list'] = False"],
8531ddd7dd63 patch 8.2.1150: ml_get error when using Python
Bram Moolenaar <Bram@vim.org>
parents: 21190
diff changeset
558 \ 'Vim(py3):vim.error: attempt to refer to deleted window')
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
559 call assert_match('<window object (deleted)', py3eval("repr(w)"))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
560 %bw!
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
561 endfunc
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
562
31422
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
563 " This was causing trouble because "curbuf" was not matching curwin->w_buffer
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
564 func Test_python3_window_set_height()
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
565 enew!
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
566 call setline(1, ['aaa', 'bbb', 'ccc'])
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
567 call cursor(2, 1)
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
568 set foldmethod=expr
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
569 new
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
570 wincmd w
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
571 python3 vim.windows[0].height = 5
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
572 call assert_equal(5, winheight(1))
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
573
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
574 call feedkeys('j', 'xt')
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
575 call assert_equal(3, getpos('.')[1])
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
576
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
577 bwipe!
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
578 bwipe!
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
579 endfunc
c3c8136ecfa0 patch 9.0.1044: setting window height using Python may cause errors
Bram Moolenaar <Bram@vim.org>
parents: 30592
diff changeset
580
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
581 " Test for the python List object
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
582 func Test_python3_list()
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
583 " Try to convert a null List
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
584 call AssertException(["py3 t = vim.eval('test_null_list()')"],
23283
b5786cf7c114 patch 8.2.2187: Python 3 test fails sometimes
Bram Moolenaar <Bram@vim.org>
parents: 23264
diff changeset
585 \ s:system_error_pat)
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
586
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
587 " Try to convert a List with a null List item
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
588 call AssertException(["py3 t = vim.eval('[test_null_list()]')"],
23283
b5786cf7c114 patch 8.2.2187: Python 3 test fails sometimes
Bram Moolenaar <Bram@vim.org>
parents: 23264
diff changeset
589 \ s:system_error_pat)
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
590
22806
690b84a6a7ce patch 8.2.1951: test for list and dict fails
Bram Moolenaar <Bram@vim.org>
parents: 22728
diff changeset
591 " Try to bind a null List variable (works because an empty list is used)
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
592 let cmds =<< trim END
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
593 let l = test_null_list()
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
594 py3 ll = vim.bindeval('l')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
595 END
22806
690b84a6a7ce patch 8.2.1951: test for list and dict fails
Bram Moolenaar <Bram@vim.org>
parents: 22728
diff changeset
596 call AssertException(cmds, '')
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
597
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
598 let l = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
599 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
600 py3 f = vim.bindeval('function("strlen")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
601 " Extending List directly with different types
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
602 py3 l += [1, "as'd", [1, 2, f, {'a': 1}]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
603 call assert_equal([1, "as'd", [1, 2, function("strlen"), {'a': 1}]], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
604 call assert_equal([1, 2, function("strlen"), {'a': 1}], l[-1])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
605 call assert_fails('echo l[-4]', 'E684:')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
606
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
607 " List assignment
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
608 py3 l[0] = 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
609 call assert_equal([0, "as'd", [1, 2, function("strlen"), {'a': 1}]], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
610 py3 l[-2] = f
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
611 call assert_equal([0, function("strlen"), [1, 2, function("strlen"), {'a': 1}]], l)
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
612
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
613 " appending to a list
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
614 let l = [1, 2]
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
615 py3 ll = vim.bindeval('l')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
616 py3 ll[2] = 8
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
617 call assert_equal([1, 2, 8], l)
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
618
23992
faca24acb37f patch 8.2.2538: crash when using Python list iterator
Bram Moolenaar <Bram@vim.org>
parents: 23456
diff changeset
619 " iterating over list from Python
faca24acb37f patch 8.2.2538: crash when using Python list iterator
Bram Moolenaar <Bram@vim.org>
parents: 23456
diff changeset
620 py3 print([x for x in vim.Function("getline")(1, 2)])
faca24acb37f patch 8.2.2538: crash when using Python list iterator
Bram Moolenaar <Bram@vim.org>
parents: 23456
diff changeset
621
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
622 " Using dict as an index
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
623 call AssertException(['py3 ll[{}] = 10'],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
624 \ 'Vim(py3):TypeError: index must be int or slice, not dict')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
625 endfunc
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
626
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
627 " Test for the python Dict object
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
628 func Test_python3_dict()
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
629 " Try to convert a null Dict
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
630 call AssertException(["py3 t = vim.eval('test_null_dict()')"],
23283
b5786cf7c114 patch 8.2.2187: Python 3 test fails sometimes
Bram Moolenaar <Bram@vim.org>
parents: 23264
diff changeset
631 \ s:system_error_pat)
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
632
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
633 " Try to convert a Dict with a null List value
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
634 call AssertException(["py3 t = vim.eval(\"{'a' : test_null_list()}\")"],
23283
b5786cf7c114 patch 8.2.2187: Python 3 test fails sometimes
Bram Moolenaar <Bram@vim.org>
parents: 23264
diff changeset
635 \ s:system_error_pat)
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
636
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
637 " Try to convert a Dict with a null string key
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
638 py3 t = vim.eval("{test_null_string() : 10}")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
639 call assert_fails("let d = py3eval('t')", 'E859:')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
640
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
641 " Dict length
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
642 let d = {'a' : 10, 'b' : 20}
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
643 py3 d = vim.bindeval('d')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
644 call assert_equal(2, py3eval('len(d)'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
645
26211
485c7c4afeb7 patch 8.2.3637: typos in test files
Bram Moolenaar <Bram@vim.org>
parents: 26139
diff changeset
646 " Deleting a non-existing key
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
647 call AssertException(["py3 del d['c']"], "Vim(py3):KeyError: 'c'")
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
648 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
649
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
650 " Extending Dictionary directly with different types
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
651 func Test_python3_dict_extend()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
652 let d = {}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
653 func d.f()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
654 return 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
655 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
656
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
657 py3 f = vim.bindeval('function("strlen")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
658 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
659 d = vim.bindeval('d')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
660 d['1'] = 'asd'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
661 d.update() # Must not do anything, including throwing errors
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
662 d.update(b = [1, 2, f])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
663 d.update((('-1', {'a': 1}),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
664 d.update({'0': -1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
665 dk = d.keys()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
666 dv = d.values()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
667 di = d.items()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
668 dk.sort(key=repr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
669 dv.sort(key=repr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
670 di.sort(key=repr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
671 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
672
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
673 " Try extending a locked dictionary
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
674 lockvar d
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
675 call AssertException(["py3 d.update({'b' : 20})"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
676 \ 'Vim(py3):vim.error: dictionary is locked')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
677 unlockvar d
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
678
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
679 call assert_equal(1, py3eval("d['f'](self={})"))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
680 call assert_equal("[b'-1', b'0', b'1', b'b', b'f']", py3eval('repr(dk)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
681 call assert_equal("[-1, <vim.Function '1'>, <vim.dictionary object at >, <vim.list object at >, b'asd']", substitute(py3eval('repr(dv)'),'0x\x\+','','g'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
682 call assert_equal("[(b'-1', <vim.dictionary object at >), (b'0', -1), (b'1', b'asd'), (b'b', <vim.list object at >), (b'f', <vim.Function '1'>)]", substitute(py3eval('repr(di)'),'0x\x\+','','g'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
683 call assert_equal(['0', '1', 'b', 'f', '-1'], keys(d))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
684 call assert_equal("[-1, 'asd', [1, 2, function('strlen')], function('1'), {'a': 1}]", string(values(d)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
685 py3 del dk
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
686 py3 del di
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
687 py3 del dv
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
688 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
689
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
690 func Test_python3_list_del_items()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
691 " removing items with del
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
692 let l = [0, function("strlen"), [1, 2, function("strlen"), {'a': 1}]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
693 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
694 py3 del l[2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
695 call assert_equal("[0, function('strlen')]", string(l))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
696
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
697 let l = range(8)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
698 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
699 py3 del l[:3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
700 py3 del l[1:]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
701 call assert_equal([3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
702
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
703 " removing items out of range: silently skip items that don't exist
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
704
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
705 " The following two ranges delete nothing as they match empty list:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
706 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
707 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
708 py3 del l[2:1]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
709 call assert_equal([0, 1, 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
710 py3 del l[2:2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
711 call assert_equal([0, 1, 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
712 py3 del l[2:3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
713 call assert_equal([0, 1, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
714
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
715 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
716 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
717 py3 del l[2:4]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
718 call assert_equal([0, 1], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
719
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
720 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
721 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
722 py3 del l[2:5]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
723 call assert_equal([0, 1], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
724
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
725 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
726 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
727 py3 del l[2:6]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
728 call assert_equal([0, 1], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
729
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
730 " The following two ranges delete nothing as they match empty list:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
731 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
732 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
733 py3 del l[-1:2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
734 call assert_equal([0, 1, 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
735 py3 del l[-2:2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
736 call assert_equal([0, 1, 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
737 py3 del l[-3:2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
738 call assert_equal([0, 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
739
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
740 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
741 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
742 py3 del l[-4:2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
743 call assert_equal([2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
744
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
745 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
746 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
747 py3 del l[-5:2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
748 call assert_equal([2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
749
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
750 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
751 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
752 py3 del l[-6:2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
753 call assert_equal([2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
754
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
755 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
756 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
757 py3 del l[::2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
758 call assert_equal([1, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
759
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
760 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
761 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
762 py3 del l[3:0:-2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
763 call assert_equal([0, 2], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
764
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
765 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
766 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
767 py3 del l[2:4:-2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
768 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
769 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
770
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
771 func Test_python3_dict_del_items()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
772 let d = eval("{'0' : -1, '1' : 'asd', 'b' : [1, 2, function('strlen')], 'f' : function('min'), '-1' : {'a': 1}}")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
773 py3 d = vim.bindeval('d')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
774 py3 del d['-1']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
775 py3 del d['f']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
776 call assert_equal([1, 2, function('strlen')], py3eval('d.get(''b'', 1)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
777 call assert_equal([1, 2, function('strlen')], py3eval('d.pop(''b'')'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
778 call assert_equal(1, py3eval('d.get(''b'', 1)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
779 call assert_equal('asd', py3eval('d.pop(''1'', 2)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
780 call assert_equal(2, py3eval('d.pop(''1'', 2)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
781 call assert_equal('True', py3eval('repr(d.has_key(''0''))'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
782 call assert_equal('False', py3eval('repr(d.has_key(''1''))'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
783 call assert_equal('True', py3eval('repr(''0'' in d)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
784 call assert_equal('False', py3eval('repr(''1'' in d)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
785 call assert_equal("[b'0']", py3eval('repr(list(iter(d)))'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
786 call assert_equal({'0' : -1}, d)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
787 call assert_equal("(b'0', -1)", py3eval('repr(d.popitem())'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
788 call assert_equal('None', py3eval('repr(d.get(''0''))'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
789 call assert_equal('[]', py3eval('repr(list(iter(d)))'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
790 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
791
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
792 " Slice assignment to a list
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
793 func Test_python3_slice_assignment()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
794 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
795 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
796 py3 l[0:0] = ['a']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
797 call assert_equal(['a', 0, 1, 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
798
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
799 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
800 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
801 py3 l[1:2] = ['b']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
802 call assert_equal([0, 'b', 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
803
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
804 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
805 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
806 py3 l[2:4] = ['c']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
807 call assert_equal([0, 1, 'c'], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
808
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
809 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
810 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
811 py3 l[4:4] = ['d']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
812 call assert_equal([0, 1, 2, 3, 'd'], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
813
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
814 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
815 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
816 py3 l[-1:2] = ['e']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
817 call assert_equal([0, 1, 2, 'e', 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
818
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
819 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
820 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
821 py3 l[-10:2] = ['f']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
822 call assert_equal(['f', 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
823
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
824 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
825 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
826 py3 l[2:-10] = ['g']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
827 call assert_equal([0, 1, 'g', 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
828
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
829 let l = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
830 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
831 py3 l[0:0] = ['h']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
832 call assert_equal(['h'], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
833
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
834 let l = range(8)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
835 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
836 py3 l[2:6:2] = [10, 20]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
837 call assert_equal([0, 1, 10, 3, 20, 5, 6, 7], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
838
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
839 let l = range(8)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
840 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
841 py3 l[6:2:-2] = [10, 20]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
842 call assert_equal([0, 1, 2, 3, 20, 5, 10, 7], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
843
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
844 let l = range(8)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
845 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
846 py3 l[6:2] = ()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
847 call assert_equal([0, 1, 2, 3, 4, 5, 6, 7], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
848
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
849 let l = range(8)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
850 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
851 py3 l[6:2:1] = ()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
852 call assert_equal([0, 1, 2, 3, 4, 5, 6, 7], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
853
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
854 let l = range(8)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
855 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
856 py3 l[2:2:1] = ()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
857 call assert_equal([0, 1, 2, 3, 4, 5, 6, 7], l)
21200
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
858
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
859 call AssertException(["py3 x = l[10:11:0]"],
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
860 \ "Vim(py3):ValueError: slice step cannot be zero")
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
861 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
862
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
863 " Locked variables
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
864 func Test_python3_lockedvar()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
865 new
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
866 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
867 let l = [0, 1, 2, 3]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
868 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
869 lockvar! l
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
870 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
871 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
872 l[2]='i'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
873 except vim.error:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
874 cb.append('l[2] threw vim.error: ' + emsg(sys.exc_info()))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
875 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
876 call assert_equal(['', "l[2] threw vim.error: error:('list is locked',)"],
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
877 \ getline(1, '$'))
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
878
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
879 " Try to concatenate a locked list
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
880 call AssertException(['py3 l += [4, 5]'], 'Vim(py3):vim.error: list is locked')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
881
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
882 call assert_equal([0, 1, 2, 3], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
883 unlockvar! l
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
884 close!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
885 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
886
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
887 " Test for calling a function
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
888 func Test_python3_function_call()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
889 func New(...)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
890 return ['NewStart'] + a:000 + ['NewEnd']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
891 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
892
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
893 func DictNew(...) dict
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
894 return ['DictNewStart'] + a:000 + ['DictNewEnd', self]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
895 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
896
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
897 new
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
898 let l = [function('New'), function('DictNew')]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
899 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
900 py3 l.extend(list(l[0](1, 2, 3)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
901 call assert_equal([function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd'], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
902 py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
903 call assert_equal([function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
904 py3 l += [[l[0].name]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
905 call assert_equal([function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, ['New']], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
906 py3 ee('l[1](1, 2, 3)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
907 call assert_equal("l[1](1, 2, 3):(<class 'vim.error'>, error('Vim:E725: Calling dict function without Dictionary: DictNew',))", getline(2))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
908 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
909 py3 f = l[0]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
910 delfunction New
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
911 py3 ee('f(1, 2, 3)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
912 call assert_equal("f(1, 2, 3):(<class 'vim.error'>, error('Vim:E117: Unknown function: New',))", getline(2))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
913 close!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
914 delfunction DictNew
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
915 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
916
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
917 func Test_python3_float()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
918 let l = [0.0]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
919 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
920 py3 l.extend([0.0])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
921 call assert_equal([0.0, 0.0], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
922 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
923
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
924 " Test for Dict key errors
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
925 func Test_python3_dict_key_error()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
926 let messages = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
927 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
928 import sys
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
929 d = vim.bindeval('{}')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
930 m = vim.bindeval('messages')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
931 def em(expr, g=globals(), l=locals()):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
932 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
933 exec(expr, g, l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
934 except Exception as e:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
935 if sys.version_info >= (3, 5) and e.__class__ is ValueError and str(e) == 'embedded null byte':
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
936 m.extend([TypeError.__name__])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
937 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
938 m.extend([e.__class__.__name__])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
939
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
940 em('d["abc1"]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
941 em('d["abc1"]="\\0"')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
942 em('d["abc1"]=vim')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
943 em('d[""]=1')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
944 em('d["a\\0b"]=1')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
945 em('d[b"a\\0b"]=1')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
946 em('d.pop("abc1")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
947 em('d.popitem()')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
948 del em
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
949 del m
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
950 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
951
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
952 call assert_equal(['KeyError', 'TypeError', 'TypeError', 'ValueError',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
953 \ 'TypeError', 'TypeError', 'KeyError', 'KeyError'], messages)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
954 unlet messages
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
955 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
956
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
957 " Test for locked and scope attributes
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
958 func Test_python3_lock_scope_attr()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
959 let d = {} | let dl = {} | lockvar dl
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
960 let res = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
961 for s in split("d dl v: g:")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
962 let name = tr(s, ':', 's')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
963 execute 'py3 ' .. name .. ' = vim.bindeval("' .. s .. '")'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
964 call add(res, s .. ' : ' .. join(map(['locked', 'scope'],
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
965 \ 'v:val .. ":" .. py3eval(name .. "." .. v:val)'), ';'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
966 endfor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
967 call assert_equal(['d : locked:0;scope:0', 'dl : locked:1;scope:0',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
968 \ 'v: : locked:2;scope:1', 'g: : locked:0;scope:2'], res)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
969
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
970 silent! let d.abc2 = 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
971 silent! let dl.abc3 = 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
972 py3 d.locked = True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
973 py3 dl.locked = False
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
974 silent! let d.def = 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
975 silent! let dl.def = 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
976 call assert_equal({'abc2': 1}, d)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
977 call assert_equal({'def': 1}, dl)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
978 unlet d dl
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
979
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
980 let l = [] | let ll = [] | lockvar ll
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
981 let res = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
982 for s in split("l ll")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
983 let name = tr(s, ':', 's')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
984 execute 'py3 ' .. name .. '=vim.bindeval("' .. s .. '")'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
985 call add(res, s .. ' : locked:' .. py3eval(name .. '.locked'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
986 endfor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
987 call assert_equal(['l : locked:0', 'll : locked:1'], res)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
988
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
989 silent! call extend(l, [0])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
990 silent! call extend(ll, [0])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
991 py3 l.locked = True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
992 py3 ll.locked = False
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
993 silent! call extend(l, [1])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
994 silent! call extend(ll, [1])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
995 call assert_equal([0], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
996 call assert_equal([1], ll)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
997 unlet l ll
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
998
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
999 " Try changing an attribute of a fixed list
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1000 py3 a = vim.bindeval('v:argv')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1001 call AssertException(['py3 a.locked = 0'],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1002 \ 'Vim(py3):TypeError: cannot modify fixed list')
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1003 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1004
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1005 " Test for py3eval()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1006 func Test_python3_pyeval()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1007 let l = py3eval('[0, 1, 2]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1008 call assert_equal([0, 1, 2], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1009
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1010 let d = py3eval('{"a": "b", "c": 1, "d": ["e"]}')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1011 call assert_equal([['a', 'b'], ['c', 1], ['d', ['e']]], sort(items(d)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1012
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1013 let v:errmsg = ''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1014 call assert_equal(v:none, py3eval('None'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1015 call assert_equal('', v:errmsg)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1016
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1017 py3 v = vim.eval('test_null_function()')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1018 call assert_equal(v:none, py3eval('v'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1019
30310
029c59bf78f1 patch 9.0.0491: no good reason to build without the float feature
Bram Moolenaar <Bram@vim.org>
parents: 30051
diff changeset
1020 call assert_equal(0.0, py3eval('0.0'))
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1021
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1022 " Evaluate an invalid values
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1023 call AssertException(['let v = py3eval(''"\0"'')'], 'E859:')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1024 call AssertException(['let v = py3eval(''{"\0" : 1}'')'], 'E859:')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1025 call AssertException(['let v = py3eval("undefined_name")'],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1026 \ "Vim(let):NameError: name 'undefined_name' is not defined")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1027 call AssertException(['let v = py3eval("vim")'], 'E859:')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1028 endfunc
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1029
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1030 " Test for vim.bindeval()
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1031 func Test_python3_vim_bindeval()
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1032 " Float
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1033 let f = 3.14
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1034 py3 f = vim.bindeval('f')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1035 call assert_equal(3.14, py3eval('f'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1036
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1037 " Blob
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1038 let b = 0z12
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1039 py3 b = vim.bindeval('b')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1040 call assert_equal("\x12", py3eval('b'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1041
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1042 " Bool
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1043 call assert_equal(1, py3eval("vim.bindeval('v:true')"))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1044 call assert_equal(0, py3eval("vim.bindeval('v:false')"))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1045 call assert_equal(v:none, py3eval("vim.bindeval('v:null')"))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1046 call assert_equal(v:none, py3eval("vim.bindeval('v:none')"))
21200
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1047
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1048 " channel/job
24667
8feb0450b690 patch 8.2.2872: Python tests fail without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 23992
diff changeset
1049 if has('channel')
8feb0450b690 patch 8.2.2872: Python tests fail without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 23992
diff changeset
1050 call assert_equal(v:none, py3eval("vim.bindeval('test_null_channel()')"))
8feb0450b690 patch 8.2.2872: Python tests fail without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 23992
diff changeset
1051 endif
8feb0450b690 patch 8.2.2872: Python tests fail without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 23992
diff changeset
1052 if has('job')
8feb0450b690 patch 8.2.2872: Python tests fail without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 23992
diff changeset
1053 call assert_equal(v:none, py3eval("vim.bindeval('test_null_job()')"))
8feb0450b690 patch 8.2.2872: Python tests fail without the channel feature
Bram Moolenaar <Bram@vim.org>
parents: 23992
diff changeset
1054 endif
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1055 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1056
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1057 " threading
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1058 " Running py3do command (Test_pydo) before this test, stops the python thread
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1059 " from running. So this test should be run before the pydo test
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1060 func Test_aaa_python3_threading()
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1061 let l = [0]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1062 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1063 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1064 import threading
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1065 import time
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1066
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1067 class T(threading.Thread):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1068 def __init__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1069 threading.Thread.__init__(self)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1070 self.t = 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1071 self.running = True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1072
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1073 def run(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1074 while self.running:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1075 self.t += 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1076 time.sleep(0.1)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1077
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1078 t = T()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1079 del T
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1080 t.start()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1081 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1082
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1083 sleep 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1084 py3 t.running = False
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1085 py3 t.join()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1086
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1087 " Check if the background thread is working. Count should be 10, but on a
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1088 " busy system (AppVeyor) it can be much lower.
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1089 py3 l[0] = t.t > 4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1090 py3 del time
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1091 py3 del threading
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1092 py3 del t
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1093 call assert_equal([1], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1094 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1095
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1096 " settrace
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1097 func Test_python3_settrace()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1098 let l = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1099 py3 l = vim.bindeval('l')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1100 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1101 import sys
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1102
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1103 def traceit(frame, event, arg):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1104 global l
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1105 if event == "line":
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1106 l += [frame.f_lineno]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1107 return traceit
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1108
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1109 def trace_main():
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1110 for i in range(5):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1111 pass
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1112 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1113 py3 sys.settrace(traceit)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1114 py3 trace_main()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1115 py3 sys.settrace(None)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1116 py3 del traceit
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1117 py3 del trace_main
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1118 call assert_equal([1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1], l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1119 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1120
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1121 " Slice
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1122 func Test_python3_list_slice()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1123 py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1124 py3 l = ll[:4]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1125 call assert_equal([0, 1, 2, 3], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1126 py3 l = ll[2:]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1127 call assert_equal([2, 3, 4, 5], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1128 py3 l = ll[:-4]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1129 call assert_equal([0, 1], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1130 py3 l = ll[-2:]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1131 call assert_equal([4, 5], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1132 py3 l = ll[2:4]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1133 call assert_equal([2, 3], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1134 py3 l = ll[4:2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1135 call assert_equal([], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1136 py3 l = ll[-4:-2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1137 call assert_equal([2, 3], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1138 py3 l = ll[-2:-4]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1139 call assert_equal([], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1140 py3 l = ll[:]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1141 call assert_equal([0, 1, 2, 3, 4, 5], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1142 py3 l = ll[0:6]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1143 call assert_equal([0, 1, 2, 3, 4, 5], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1144 py3 l = ll[-10:10]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1145 call assert_equal([0, 1, 2, 3, 4, 5], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1146 py3 l = ll[4:2:-1]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1147 call assert_equal([4, 3], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1148 py3 l = ll[::2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1149 call assert_equal([0, 2, 4], py3eval('l'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1150 py3 l = ll[4:2:1]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1151 call assert_equal([], py3eval('l'))
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1152
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1153 " Error case: Use an invalid index
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1154 call AssertException(['py3 ll[-10] = 5'], 'Vim(py3):vim.error: internal error:')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1155
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1156 " Use a step value of 0
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1157 call AssertException(['py3 ll[0:3:0] = [1, 2, 3]'],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1158 \ 'Vim(py3):ValueError: slice step cannot be zero')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1159
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1160 " Error case: Invalid slice type
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1161 call AssertException(["py3 x = ll['abc']"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1162 \ "Vim(py3):TypeError: index must be int or slice, not str")
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1163 py3 del l
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1164
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1165 " Error case: List with a null list item
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1166 let l = [test_null_list()]
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1167 py3 ll = vim.bindeval('l')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1168 call AssertException(["py3 x = ll[:]"],
23283
b5786cf7c114 patch 8.2.2187: Python 3 test fails sometimes
Bram Moolenaar <Bram@vim.org>
parents: 23264
diff changeset
1169 \ s:system_error_pat)
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1170 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1171
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1172 " Vars
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1173 func Test_python3_vars()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1174 let g:foo = 'bac'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1175 let w:abc3 = 'def'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1176 let b:baz = 'bar'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1177 let t:bar = 'jkl'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1178 try
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1179 throw "Abc"
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1180 catch /Abc/
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1181 call assert_equal('Abc', py3eval('vim.vvars[''exception'']'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1182 endtry
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1183 call assert_equal('bac', py3eval('vim.vars[''foo'']'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1184 call assert_equal('def', py3eval('vim.current.window.vars[''abc3'']'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1185 call assert_equal('bar', py3eval('vim.current.buffer.vars[''baz'']'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1186 call assert_equal('jkl', py3eval('vim.current.tabpage.vars[''bar'']'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1187 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1188
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1189 " Options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1190 " paste: boolean, global
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1191 " previewheight number, global
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1192 " operatorfunc: string, global
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1193 " number: boolean, window-local
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1194 " numberwidth: number, window-local
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1195 " colorcolumn: string, window-local
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1196 " statusline: string, window-local/global
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1197 " autoindent: boolean, buffer-local
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1198 " shiftwidth: number, buffer-local
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1199 " omnifunc: string, buffer-local
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1200 " preserveindent: boolean, buffer-local/global
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1201 " path: string, buffer-local/global
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1202 func Test_python3_opts()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1203 let g:res = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1204 let g:bufs = [bufnr('%')]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1205 new
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1206 let g:bufs += [bufnr('%')]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1207 vnew
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1208 let g:bufs += [bufnr('%')]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1209 wincmd j
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1210 vnew
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1211 let g:bufs += [bufnr('%')]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1212 wincmd l
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1213
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1214 func RecVars(opt)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1215 let gval = string(eval('&g:' .. a:opt))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1216 let wvals = join(map(range(1, 4),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1217 \ 'v:val .. ":" .. string(getwinvar(v:val, "&" .. a:opt))'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1218 let bvals = join(map(copy(g:bufs),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1219 \ 'v:val .. ":" .. string(getbufvar(v:val, "&" .. a:opt))'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1220 call add(g:res, ' G: ' .. gval)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1221 call add(g:res, ' W: ' .. wvals)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1222 call add(g:res, ' B: ' .. wvals)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1223 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1224
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1225 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1226 def e(s, g=globals(), l=locals()):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1227 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1228 exec(s, g, l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1229 except Exception as e:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1230 vim.command('return ' + repr(e.__class__.__name__))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1231
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1232 def ev(s, g=globals(), l=locals()):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1233 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1234 return eval(s, g, l)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1235 except Exception as e:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1236 vim.command('let exc=' + repr(e.__class__.__name__))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1237 return 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1238 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1239
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1240 func E(s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1241 python3 e(vim.eval('a:s'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1242 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1243
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1244 func Ev(s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1245 let r = py3eval('ev(vim.eval("a:s"))')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1246 if exists('exc')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1247 throw exc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1248 endif
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1249 return r
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1250 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1251
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1252 py3 gopts1 = vim.options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1253 py3 wopts1 = vim.windows[2].options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1254 py3 wopts2 = vim.windows[0].options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1255 py3 wopts3 = vim.windows[1].options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1256 py3 bopts1 = vim.buffers[vim.bindeval("g:bufs")[2]].options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1257 py3 bopts2 = vim.buffers[vim.bindeval("g:bufs")[1]].options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1258 py3 bopts3 = vim.buffers[vim.bindeval("g:bufs")[0]].options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1259 call add(g:res, 'wopts iters equal: ' ..
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1260 \ py3eval('list(wopts1) == list(wopts2)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1261 call add(g:res, 'bopts iters equal: ' ..
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1262 \ py3eval('list(bopts1) == list(bopts2)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1263 py3 gset = set(iter(gopts1))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1264 py3 wset = set(iter(wopts1))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1265 py3 bset = set(iter(bopts1))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1266
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1267 set path=.,..,,
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1268 let lst = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1269 let lst += [['paste', 1, 0, 1, 2, 1, 1, 0]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1270 let lst += [['previewheight', 5, 1, 6, 'a', 0, 1, 0]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1271 let lst += [['operatorfunc', 'A', 'B', 'C', 2, 0, 1, 0]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1272 let lst += [['number', 0, 1, 1, 0, 1, 0, 1]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1273 let lst += [['numberwidth', 2, 3, 5, -100, 0, 0, 1]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1274 let lst += [['colorcolumn', '+1', '+2', '+3', 'abc4', 0, 0, 1]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1275 let lst += [['statusline', '1', '2', '4', 0, 0, 1, 1]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1276 let lst += [['autoindent', 0, 1, 1, 2, 1, 0, 2]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1277 let lst += [['shiftwidth', 0, 2, 1, 3, 0, 0, 2]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1278 let lst += [['omnifunc', 'A', 'B', 'C', 1, 0, 0, 2]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1279 let lst += [['preserveindent', 0, 1, 1, 2, 1, 1, 2]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1280 let lst += [['path', '.,,', ',,', '.', 0, 0, 1, 2]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1281 for [oname, oval1, oval2, oval3, invval, bool, global, local] in lst
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1282 py3 oname = vim.eval('oname')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1283 py3 oval1 = vim.bindeval('oval1')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1284 py3 oval2 = vim.bindeval('oval2')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1285 py3 oval3 = vim.bindeval('oval3')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1286 if invval is 0 || invval is 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1287 py3 invval = bool(vim.bindeval('invval'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1288 else
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1289 py3 invval = vim.bindeval('invval')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1290 endif
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1291 if bool
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1292 py3 oval1 = bool(oval1)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1293 py3 oval2 = bool(oval2)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1294 py3 oval3 = bool(oval3)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1295 endif
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1296 call add(g:res, '>>> ' .. oname)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1297 call add(g:res, ' g/w/b:' .. py3eval('oname in gset') .. '/' ..
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1298 \ py3eval('oname in wset') .. '/' .. py3eval('oname in bset'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1299 call add(g:res, ' g/w/b (in):' .. py3eval('oname in gopts1') .. '/' ..
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1300 \ py3eval('oname in wopts1') .. '/' .. py3eval('oname in bopts1'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1301 for v in ['gopts1', 'wopts1', 'bopts1']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1302 try
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1303 call add(g:res, ' p/' .. v .. ': ' .. Ev('repr(' .. v .. '[''' .. oname .. '''])'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1304 catch
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1305 call add(g:res, ' p/' .. v .. '! ' .. v:exception)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1306 endtry
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1307 let r = E(v .. '[''' .. oname .. ''']=invval')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1308 if r isnot 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1309 call add(g:res, ' inv: ' .. string(invval) .. '! ' .. r)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1310 endif
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1311 for vv in (v is# 'gopts1' ? [v] : [v, v[:-2] .. '2', v[:-2] .. '3'])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1312 let val = substitute(vv, '^.opts', 'oval', '')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1313 let r = E(vv .. '[''' .. oname .. ''']=' .. val)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1314 if r isnot 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1315 call add(g:res, ' ' .. vv .. '! ' .. r)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1316 endif
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1317 endfor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1318 endfor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1319 call RecVars(oname)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1320 for v in ['wopts3', 'bopts3']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1321 let r = E('del ' .. v .. '["' .. oname .. '"]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1322 if r isnot 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1323 call add(g:res, ' del ' .. v .. '! ' .. r)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1324 endif
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1325 endfor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1326 call RecVars(oname)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1327 endfor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1328 delfunction RecVars
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1329 delfunction E
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1330 delfunction Ev
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1331 py3 del ev
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1332 py3 del e
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1333 only
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1334 for buf in g:bufs[1:]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1335 execute 'bwipeout!' buf
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1336 endfor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1337 py3 del gopts1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1338 py3 del wopts1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1339 py3 del wopts2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1340 py3 del wopts3
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1341 py3 del bopts1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1342 py3 del bopts2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1343 py3 del bopts3
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1344 py3 del oval1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1345 py3 del oval2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1346 py3 del oval3
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1347 py3 del oname
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1348 py3 del invval
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1349
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1350 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1351 wopts iters equal: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1352 bopts iters equal: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1353 >>> paste
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1354 g/w/b:1/0/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1355 g/w/b (in):1/0/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1356 p/gopts1: False
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1357 p/wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1358 inv: 2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1359 wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1360 wopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1361 wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1362 p/bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1363 inv: 2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1364 bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1365 bopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1366 bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1367 G: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1368 W: 1:1 2:1 3:1 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1369 B: 1:1 2:1 3:1 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1370 del wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1371 del bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1372 G: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1373 W: 1:1 2:1 3:1 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1374 B: 1:1 2:1 3:1 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1375 >>> previewheight
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1376 g/w/b:1/0/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1377 g/w/b (in):1/0/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1378 p/gopts1: 12
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1379 inv: 'a'! TypeError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1380 p/wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1381 inv: 'a'! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1382 wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1383 wopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1384 wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1385 p/bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1386 inv: 'a'! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1387 bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1388 bopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1389 bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1390 G: 5
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1391 W: 1:5 2:5 3:5 4:5
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1392 B: 1:5 2:5 3:5 4:5
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1393 del wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1394 del bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1395 G: 5
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1396 W: 1:5 2:5 3:5 4:5
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1397 B: 1:5 2:5 3:5 4:5
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1398 >>> operatorfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1399 g/w/b:1/0/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1400 g/w/b (in):1/0/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1401 p/gopts1: b''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1402 inv: 2! TypeError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1403 p/wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1404 inv: 2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1405 wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1406 wopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1407 wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1408 p/bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1409 inv: 2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1410 bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1411 bopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1412 bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1413 G: 'A'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1414 W: 1:'A' 2:'A' 3:'A' 4:'A'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1415 B: 1:'A' 2:'A' 3:'A' 4:'A'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1416 del wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1417 del bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1418 G: 'A'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1419 W: 1:'A' 2:'A' 3:'A' 4:'A'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1420 B: 1:'A' 2:'A' 3:'A' 4:'A'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1421 >>> number
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1422 g/w/b:0/1/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1423 g/w/b (in):0/1/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1424 p/gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1425 inv: 0! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1426 gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1427 p/wopts1: False
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1428 p/bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1429 inv: 0! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1430 bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1431 bopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1432 bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1433 G: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1434 W: 1:1 2:1 3:0 4:0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1435 B: 1:1 2:1 3:0 4:0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1436 del wopts3! ValueError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1437 del bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1438 G: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1439 W: 1:1 2:1 3:0 4:0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1440 B: 1:1 2:1 3:0 4:0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1441 >>> numberwidth
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1442 g/w/b:0/1/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1443 g/w/b (in):0/1/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1444 p/gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1445 inv: -100! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1446 gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1447 p/wopts1: 4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1448 inv: -100! error
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1449 p/bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1450 inv: -100! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1451 bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1452 bopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1453 bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1454 G: 4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1455 W: 1:3 2:5 3:2 4:4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1456 B: 1:3 2:5 3:2 4:4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1457 del wopts3! ValueError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1458 del bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1459 G: 4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1460 W: 1:3 2:5 3:2 4:4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1461 B: 1:3 2:5 3:2 4:4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1462 >>> colorcolumn
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1463 g/w/b:0/1/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1464 g/w/b (in):0/1/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1465 p/gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1466 inv: 'abc4'! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1467 gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1468 p/wopts1: b''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1469 inv: 'abc4'! error
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1470 p/bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1471 inv: 'abc4'! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1472 bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1473 bopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1474 bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1475 G: ''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1476 W: 1:'+2' 2:'+3' 3:'+1' 4:''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1477 B: 1:'+2' 2:'+3' 3:'+1' 4:''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1478 del wopts3! ValueError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1479 del bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1480 G: ''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1481 W: 1:'+2' 2:'+3' 3:'+1' 4:''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1482 B: 1:'+2' 2:'+3' 3:'+1' 4:''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1483 >>> statusline
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1484 g/w/b:1/1/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1485 g/w/b (in):1/1/0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1486 p/gopts1: b''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1487 inv: 0! TypeError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1488 p/wopts1: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1489 inv: 0! TypeError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1490 p/bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1491 inv: 0! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1492 bopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1493 bopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1494 bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1495 G: '1'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1496 W: 1:'2' 2:'4' 3:'1' 4:'1'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1497 B: 1:'2' 2:'4' 3:'1' 4:'1'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1498 del bopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1499 G: '1'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1500 W: 1:'2' 2:'1' 3:'1' 4:'1'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1501 B: 1:'2' 2:'1' 3:'1' 4:'1'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1502 >>> autoindent
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1503 g/w/b:0/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1504 g/w/b (in):0/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1505 p/gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1506 inv: 2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1507 gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1508 p/wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1509 inv: 2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1510 wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1511 wopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1512 wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1513 p/bopts1: False
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1514 G: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1515 W: 1:0 2:1 3:0 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1516 B: 1:0 2:1 3:0 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1517 del wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1518 del bopts3! ValueError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1519 G: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1520 W: 1:0 2:1 3:0 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1521 B: 1:0 2:1 3:0 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1522 >>> shiftwidth
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1523 g/w/b:0/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1524 g/w/b (in):0/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1525 p/gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1526 inv: 3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1527 gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1528 p/wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1529 inv: 3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1530 wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1531 wopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1532 wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1533 p/bopts1: 8
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1534 G: 8
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1535 W: 1:0 2:2 3:8 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1536 B: 1:0 2:2 3:8 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1537 del wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1538 del bopts3! ValueError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1539 G: 8
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1540 W: 1:0 2:2 3:8 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1541 B: 1:0 2:2 3:8 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1542 >>> omnifunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1543 g/w/b:0/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1544 g/w/b (in):0/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1545 p/gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1546 inv: 1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1547 gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1548 p/wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1549 inv: 1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1550 wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1551 wopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1552 wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1553 p/bopts1: b''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1554 inv: 1! TypeError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1555 G: ''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1556 W: 1:'A' 2:'B' 3:'' 4:'C'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1557 B: 1:'A' 2:'B' 3:'' 4:'C'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1558 del wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1559 del bopts3! ValueError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1560 G: ''
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1561 W: 1:'A' 2:'B' 3:'' 4:'C'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1562 B: 1:'A' 2:'B' 3:'' 4:'C'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1563 >>> preserveindent
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1564 g/w/b:0/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1565 g/w/b (in):0/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1566 p/gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1567 inv: 2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1568 gopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1569 p/wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1570 inv: 2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1571 wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1572 wopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1573 wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1574 p/bopts1: False
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1575 G: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1576 W: 1:0 2:1 3:0 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1577 B: 1:0 2:1 3:0 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1578 del wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1579 del bopts3! ValueError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1580 G: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1581 W: 1:0 2:1 3:0 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1582 B: 1:0 2:1 3:0 4:1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1583 >>> path
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1584 g/w/b:1/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1585 g/w/b (in):1/0/1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1586 p/gopts1: b'.,..,,'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1587 inv: 0! TypeError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1588 p/wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1589 inv: 0! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1590 wopts1! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1591 wopts2! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1592 wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1593 p/bopts1: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1594 inv: 0! TypeError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1595 G: '.,,'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1596 W: 1:'.,,' 2:',,' 3:'.,,' 4:'.'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1597 B: 1:'.,,' 2:',,' 3:'.,,' 4:'.'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1598 del wopts3! KeyError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1599 G: '.,,'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1600 W: 1:'.,,' 2:',,' 3:'.,,' 4:'.,,'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1601 B: 1:'.,,' 2:',,' 3:'.,,' 4:'.,,'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1602 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1603
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1604 call assert_equal(expected, g:res)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1605 unlet g:res
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1606
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1607 call assert_equal(0, py3eval("'' in vim.options"))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1608
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1609 " use an empty key to index vim.options
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1610 call AssertException(["let v = py3eval(\"vim.options['']\")"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1611 \ 'Vim(let):ValueError: empty keys are not allowed')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1612 call AssertException(["py3 vim.current.window.options[''] = 0"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1613 \ 'Vim(py3):ValueError: empty keys are not allowed')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1614 call AssertException(["py3 vim.current.window.options[{}] = 0"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1615 \ 'Vim(py3):TypeError: expected bytes() or str() instance, but got dict')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1616
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1617 " set one of the number options to a very large number
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1618 let cmd = ["py3 vim.options['previewheight'] = 9999999999999999"]
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1619 call AssertException(cmd, "Vim(py3):OverflowError:")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1620
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1621 " unset a global-local string option
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1622 call AssertException(["py3 del vim.options['errorformat']"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1623 \ 'Vim(py3):ValueError: unable to unset global option errorformat')
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1624 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1625
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1626 " Test for vim.buffer object
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1627 func Test_python3_buffer()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1628 new
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1629 call setline(1, "Hello\nWorld")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1630 call assert_fails("let x = py3eval('vim.current.buffer[0]')", 'E859:')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1631 %bw!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1632
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1633 edit Xfile1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1634 let bnr1 = bufnr()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1635 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1636 vnew Xfile2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1637 let bnr2 = bufnr()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1638 call setline(1, ['First line', 'Second line', 'Third line'])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1639 py3 b = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1640 wincmd w
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1641
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1642 " Test for getting lines from the buffer using a slice
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1643 call assert_equal(['First line'], py3eval('b[-10:1]'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1644 call assert_equal(['Third line'], py3eval('b[2:10]'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1645 call assert_equal([], py3eval('b[2:0]'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1646 call assert_equal([], py3eval('b[10:12]'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1647 call assert_equal([], py3eval('b[-10:-8]'))
21200
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1648 call AssertException(["py3 x = b[0:3:0]"],
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1649 \ 'Vim(py3):ValueError: slice step cannot be zero')
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1650 call AssertException(["py3 b[0:3:0] = 'abc'"],
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1651 \ 'Vim(py3):ValueError: slice step cannot be zero')
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1652 call AssertException(["py3 x = b[{}]"],
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1653 \ 'Vim(py3):TypeError: index must be int or slice, not dict')
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1654 call AssertException(["py3 b[{}] = 'abc'"],
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1655 \ 'Vim(py3):TypeError: index must be int or slice, not dict')
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1656
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1657 " Test for getting lines using a range
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1658 call AssertException(["py3 x = b.range(0,3)[0:2:0]"],
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1659 \ "Vim(py3):ValueError: slice step cannot be zero")
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1660 call AssertException(["py3 b.range(0,3)[0:2:0] = 'abc'"],
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1661 \ "Vim(py3):ValueError: slice step cannot be zero")
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1662
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1663 " Tests BufferAppend and BufferItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1664 py3 cb.append(b[0])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1665 call assert_equal(['First line'], getbufline(bnr1, 2))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1666 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1667
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1668 " Try to append using out-of-range line number
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1669 call AssertException(["py3 b.append('abc', 10)"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1670 \ 'Vim(py3):IndexError: line number out of range')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1671
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1672 " Append a non-string item
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1673 call AssertException(["py3 b.append([22])"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1674 \ 'Vim(py3):TypeError: expected bytes() or str() instance, but got int')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1675
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1676 " Tests BufferSlice and BufferAssSlice
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1677 py3 cb.append('abc5') # Will be overwritten
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1678 py3 cb[-1:] = b[:-2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1679 call assert_equal(['First line'], getbufline(bnr1, 2))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1680 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1681
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1682 " Test BufferLength and BufferAssSlice
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1683 py3 cb.append('def') # Will not be overwritten
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1684 py3 cb[len(cb):] = b[:]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1685 call assert_equal(['def', 'First line', 'Second line', 'Third line'],
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1686 \ getbufline(bnr1, 2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1687 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1688
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1689 " Test BufferAssItem and BufferMark
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1690 call setbufline(bnr1, 1, ['one', 'two', 'three'])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1691 call cursor(1, 3)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1692 normal ma
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1693 py3 cb.append('ghi') # Will be overwritten
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1694 py3 cb[-1] = repr((len(cb) - cb.mark('a')[0], cb.mark('a')[1]))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1695 call assert_equal(['(3, 2)'], getbufline(bnr1, 4))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1696 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1697
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1698 " Test BufferRepr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1699 py3 cb.append(repr(cb) + repr(b))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1700 call assert_equal(['<buffer Xfile1><buffer Xfile2>'], getbufline(bnr1, 2))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1701 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1702
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1703 " Modify foreign buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1704 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1705 b.append('foo')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1706 b[0]='bar'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1707 b[0:0]=['baz']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1708 vim.command('call append("$", getbufline(%i, 1, "$"))' % b.number)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1709 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1710 call assert_equal(['baz', 'bar', 'Second line', 'Third line', 'foo'],
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1711 \ getbufline(bnr2, 1, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1712 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1713
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1714 " Test assigning to name property
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1715 augroup BUFS
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1716 autocmd BufFilePost * python3 cb.append(vim.eval('expand("<abuf>")') + ':BufFilePost:' + vim.eval('bufnr("%")'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1717 autocmd BufFilePre * python3 cb.append(vim.eval('expand("<abuf>")') + ':BufFilePre:' + vim.eval('bufnr("%")'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1718 augroup END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1719 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1720 import os
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1721 old_name = cb.name
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1722 cb.name = 'foo'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1723 cb.append(cb.name[-11:].replace(os.path.sep, '/'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1724 b.name = 'bar'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1725 cb.append(b.name[-11:].replace(os.path.sep, '/'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1726 cb.name = old_name
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1727 cb.append(cb.name[-14:].replace(os.path.sep, '/'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1728 del old_name
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1729 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1730 call assert_equal([bnr1 .. ':BufFilePre:' .. bnr1,
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1731 \ bnr1 .. ':BufFilePost:' .. bnr1,
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1732 \ 'testdir/foo',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1733 \ bnr2 .. ':BufFilePre:' .. bnr2,
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1734 \ bnr2 .. ':BufFilePost:' .. bnr2,
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1735 \ 'testdir/bar',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1736 \ bnr1 .. ':BufFilePre:' .. bnr1,
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1737 \ bnr1 .. ':BufFilePost:' .. bnr1,
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1738 \ 'testdir/Xfile1'], getbufline(bnr1, 2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1739 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1740
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1741 " Test CheckBuffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1742 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1743 for _b in vim.buffers:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1744 if _b is not cb:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1745 vim.command('bwipeout! ' + str(_b.number))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1746 del _b
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1747 cb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1748 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1749 call assert_equal('valid: b:False, cb:True', getline(2))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1750 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1751
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1752 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1753 for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")'):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1754 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1755 exec(expr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1756 except vim.error:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1757 pass
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1758 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1759 # Usually a SEGV here
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1760 # Should not happen in any case
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1761 cb.append('No exception for ' + expr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1762 vim.command('cd .')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1763 del b
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1764 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1765 call assert_equal([''], getline(1, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1766
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1767 " Delete all the lines in a buffer
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1768 call setline(1, ['a', 'b', 'c'])
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1769 py3 vim.current.buffer[:] = []
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1770 call assert_equal([''], getline(1, '$'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1771
21200
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1772 " Test for buffer marks
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1773 call assert_equal(v:none, py3eval("vim.current.buffer.mark('r')"))
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
1774
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1775 " Test for modifying a 'nomodifiable' buffer
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1776 setlocal nomodifiable
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1777 call AssertException(["py3 vim.current.buffer[0] = 'abc'"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1778 \ "Vim(py3):vim.error: Vim:E21: Cannot make changes, 'modifiable' is off")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1779 call AssertException(["py3 vim.current.buffer[0] = None"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1780 \ "Vim(py3):vim.error: Vim:E21: Cannot make changes, 'modifiable' is off")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1781 call AssertException(["py3 vim.current.buffer[:] = None"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1782 \ "Vim(py3):vim.error: Vim:E21: Cannot make changes, 'modifiable' is off")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1783 call AssertException(["py3 vim.current.buffer[:] = []"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1784 \ "Vim(py3):vim.error: Vim:E21: Cannot make changes, 'modifiable' is off")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1785 call AssertException(["py3 vim.current.buffer.append('abc')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1786 \ "Vim(py3):vim.error: Vim:E21: Cannot make changes, 'modifiable' is off")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1787 call AssertException(["py3 vim.current.buffer.append([])"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1788 \ "Vim(py3):vim.error: Vim:E21: Cannot make changes, 'modifiable' is off")
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1789 setlocal modifiable
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1790
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1791 augroup BUFS
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1792 autocmd!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1793 augroup END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1794 augroup! BUFS
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1795 %bw!
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1796
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1797 " Range object for a deleted buffer
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1798 new Xp3buffile
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1799 call setline(1, ['one', 'two', 'three'])
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1800 py3 b = vim.current.buffer
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1801 py3 r = vim.current.buffer.range(0, 2)
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1802 call assert_equal('<range Xp3buffile (0:2)>', py3eval('repr(r)'))
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1803 %bw!
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1804 call AssertException(['py3 r[:] = []'],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1805 \ 'Vim(py3):vim.error: attempt to refer to deleted buffer')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1806 call assert_match('<buffer object (deleted)', py3eval('repr(b)'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1807 call assert_match('<range object (for deleted buffer)', py3eval('repr(r)'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1808 call AssertException(["let n = py3eval('len(r)')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1809 \ 'Vim(let):vim.error: attempt to refer to deleted buffer')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1810 call AssertException(["py3 r.append('abc')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1811 \ 'Vim(py3):vim.error: attempt to refer to deleted buffer')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1812
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1813 " object for a deleted buffer
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1814 call AssertException(["py3 b[0] = 'one'"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1815 \ 'Vim(py3):vim.error: attempt to refer to deleted buffer')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1816 call AssertException(["py3 b.append('one')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1817 \ 'Vim(py3):vim.error: attempt to refer to deleted buffer')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1818 call AssertException(["let n = py3eval('len(b)')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1819 \ 'Vim(let):vim.error: attempt to refer to deleted buffer')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1820 call AssertException(["py3 pos = b.mark('a')"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1821 \ 'Vim(py3):vim.error: attempt to refer to deleted buffer')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1822 call AssertException(["py3 vim.current.buffer = b"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1823 \ 'Vim(py3):vim.error: attempt to refer to deleted buffer')
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1824 call AssertException(["py3 rn = b.range(0, 2)"],
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
1825 \ 'Vim(py3):vim.error: attempt to refer to deleted buffer')
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1826 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1827
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1828 " Test vim.buffers object
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1829 func Test_python3_buffers()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1830 %bw!
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1831 edit Xp3buffile
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1832 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1833 set hidden
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1834 edit a
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1835 buffer #
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1836 edit b
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1837 buffer #
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1838 edit c
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1839 buffer #
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1840 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1841 # Check GCing iterator that was not fully exhausted
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1842 i = iter(vim.buffers)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1843 cb.append('i:' + str(next(i)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1844 # and also check creating more than one iterator at a time
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1845 i2 = iter(vim.buffers)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1846 cb.append('i2:' + str(next(i2)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1847 cb.append('i:' + str(next(i)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1848 # The following should trigger GC and not cause any problems
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1849 del i
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1850 del i2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1851 i3 = iter(vim.buffers)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1852 cb.append('i3:' + str(next(i3)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1853 del i3
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1854 EOF
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1855 call assert_equal(['i:<buffer Xp3buffile>',
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1856 \ 'i2:<buffer Xp3buffile>', 'i:<buffer a>', 'i3:<buffer Xp3buffile>'],
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1857 \ getline(2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1858 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1859
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1860 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1861 prevnum = 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1862 for b in vim.buffers:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1863 # Check buffer order
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1864 if prevnum >= b.number:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1865 cb.append('!!! Buffer numbers not in strictly ascending order')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1866 # Check indexing: vim.buffers[number].number == number
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1867 cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) + \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1868 '=' + repr(b))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1869 prevnum = b.number
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1870 del prevnum
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1871
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1872 cb.append(str(len(vim.buffers)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1873 EOF
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1874 call assert_equal([bufnr('Xp3buffile') .. ':<buffer Xp3buffile>=<buffer Xp3buffile>',
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1875 \ bufnr('a') .. ':<buffer a>=<buffer a>',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1876 \ bufnr('b') .. ':<buffer b>=<buffer b>',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1877 \ bufnr('c') .. ':<buffer c>=<buffer c>', '4'], getline(2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1878 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1879
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1880 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1881 bnums = list(map(lambda b: b.number, vim.buffers))[1:]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1882
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1883 # Test wiping out buffer with existing iterator
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1884 i4 = iter(vim.buffers)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1885 cb.append('i4:' + str(next(i4)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1886 vim.command('bwipeout! ' + str(bnums.pop(0)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1887 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1888 next(i4)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1889 except vim.error:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1890 pass
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1891 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1892 cb.append('!!!! No vim.error')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1893 i4 = iter(vim.buffers)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1894 vim.command('bwipeout! ' + str(bnums.pop(-1)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1895 vim.command('bwipeout! ' + str(bnums.pop(-1)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1896 cb.append('i4:' + str(next(i4)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1897 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1898 next(i4)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1899 except StopIteration:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1900 cb.append('StopIteration')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1901 del i4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1902 del bnums
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1903 EOF
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1904 call assert_equal(['i4:<buffer Xp3buffile>',
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1905 \ 'i4:<buffer Xp3buffile>', 'StopIteration'], getline(2, '$'))
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1906 %bw!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1907 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1908
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1909 " Test vim.{tabpage,window}list and vim.{tabpage,window} objects
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1910 func Test_python3_tabpage_window()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1911 %bw
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1912 edit Xp3buffile
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1913 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1914 tabnew 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1915 tabnew 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1916 vnew a.1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1917 tabnew 2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1918 vnew a.2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1919 vnew b.2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1920 vnew c.2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1921
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1922 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1923 cb.append('Number of tabs: ' + str(len(vim.tabpages)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1924 cb.append('Current tab pages:')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1925 def W(w):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1926 if '(unknown)' in repr(w):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1927 return '<window object (unknown)>'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1928 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1929 return repr(w)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1930
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1931 def Cursor(w, start=len(cb)):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1932 if w.buffer is cb:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1933 return repr((start - w.cursor[0], w.cursor[1]))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1934 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1935 return repr(w.cursor)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1936
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1937 for t in vim.tabpages:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1938 cb.append(' ' + repr(t) + '(' + str(t.number) + ')' + ': ' + \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1939 str(len(t.windows)) + ' windows, current is ' + W(t.window))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1940 cb.append(' Windows:')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1941 for w in t.windows:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1942 cb.append(' ' + W(w) + '(' + str(w.number) + ')' + \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1943 ': displays buffer ' + repr(w.buffer) + \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1944 '; cursor is at ' + Cursor(w))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1945 # Other values depend on the size of the terminal, so they are checked
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1946 # partly:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1947 for attr in ('height', 'row', 'width', 'col'):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1948 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1949 aval = getattr(w, attr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1950 if type(aval) is not int:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1951 raise TypeError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1952 if aval < 0:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1953 raise ValueError
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1954 except Exception as e:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1955 cb.append('!!!!!! Error while getting attribute ' + attr + \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1956 ': ' + e.__class__.__name__)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1957 del aval
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1958 del attr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1959 w.cursor = (len(w.buffer), 0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1960 del W
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1961 del Cursor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1962 cb.append('Number of windows in current tab page: ' + \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1963 str(len(vim.windows)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1964 if list(vim.windows) != list(vim.current.tabpage.windows):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1965 cb.append('!!!!!! Windows differ')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1966 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1967
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1968 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1969 Number of tabs: 4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1970 Current tab pages:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1971 <tabpage 0>(1): 1 windows, current is <window object (unknown)>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1972 Windows:
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1973 <window object (unknown)>(1): displays buffer <buffer Xp3buffile>; cursor is at (2, 0)
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1974 <tabpage 1>(2): 1 windows, current is <window object (unknown)>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1975 Windows:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1976 <window object (unknown)>(1): displays buffer <buffer 0>; cursor is at (1, 0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1977 <tabpage 2>(3): 2 windows, current is <window object (unknown)>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1978 Windows:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1979 <window object (unknown)>(1): displays buffer <buffer a.1>; cursor is at (1, 0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1980 <window object (unknown)>(2): displays buffer <buffer 1>; cursor is at (1, 0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1981 <tabpage 3>(4): 4 windows, current is <window 0>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1982 Windows:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1983 <window 0>(1): displays buffer <buffer c.2>; cursor is at (1, 0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1984 <window 1>(2): displays buffer <buffer b.2>; cursor is at (1, 0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1985 <window 2>(3): displays buffer <buffer a.2>; cursor is at (1, 0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1986 <window 3>(4): displays buffer <buffer 2>; cursor is at (1, 0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1987 Number of windows in current tab page: 4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1988 END
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1989 call assert_equal(expected, getbufline(bufnr('Xp3buffile'), 2, '$'))
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1990 %bw!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1991 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1992
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1993 " Test vim.current
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1994 func Test_python3_vim_current()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1995 %bw
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
1996 edit Xpy3cfile
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1997 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1998 tabnew 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
1999 tabnew 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2000 vnew a.1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2001 tabnew 2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2002 vnew a.2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2003 vnew b.2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2004 vnew c.2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2005
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2006 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2007 def H(o):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2008 return repr(o)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2009 cb.append('Current tab page: ' + repr(vim.current.tabpage))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2010 cb.append('Current window: ' + repr(vim.current.window) + ': ' + \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2011 H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2012 cb.append('Current buffer: ' + repr(vim.current.buffer) + ': ' + \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2013 H(vim.current.buffer) + ' is ' + H(vim.current.window.buffer)+ \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2014 ' is ' + H(vim.current.tabpage.window.buffer))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2015 del H
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2016 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2017 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2018 Current tab page: <tabpage 3>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2019 Current window: <window 0>: <window 0> is <window 0>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2020 Current buffer: <buffer c.2>: <buffer c.2> is <buffer c.2> is <buffer c.2>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2021 END
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2022 call assert_equal(expected, getbufline(bufnr('Xpy3cfile'), 2, '$'))
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2023 call deletebufline(bufnr('Xpy3cfile'), 1, '$')
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2024
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2025 " Assigning: fails
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2026 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2027 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2028 vim.current.window = vim.tabpages[0].window
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2029 except ValueError:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2030 cb.append('ValueError at assigning foreign tab window')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2031
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2032 for attr in ('window', 'tabpage', 'buffer'):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2033 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2034 setattr(vim.current, attr, None)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2035 except TypeError:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2036 cb.append('Type error at assigning None to vim.current.' + attr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2037 del attr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2038 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2039
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2040 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2041 ValueError at assigning foreign tab window
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2042 Type error at assigning None to vim.current.window
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2043 Type error at assigning None to vim.current.tabpage
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2044 Type error at assigning None to vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2045 END
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2046 call assert_equal(expected, getbufline(bufnr('Xpy3cfile'), 2, '$'))
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2047 call deletebufline(bufnr('Xpy3cfile'), 1, '$')
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2048
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2049 call setbufline(bufnr('Xpy3cfile'), 1, 'python interface')
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2050 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2051 # Assigning: success
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2052 vim.current.tabpage = vim.tabpages[-2]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2053 vim.current.buffer = cb
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2054 vim.current.window = vim.windows[0]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2055 vim.current.window.cursor = (len(vim.current.buffer), 0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2056 cb.append('Current tab page: ' + repr(vim.current.tabpage))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2057 cb.append('Current window: ' + repr(vim.current.window))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2058 cb.append('Current buffer: ' + repr(vim.current.buffer))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2059 cb.append('Current line: ' + repr(vim.current.line))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2060 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2061
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2062 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2063 Current tab page: <tabpage 2>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2064 Current window: <window 0>
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2065 Current buffer: <buffer Xpy3cfile>
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2066 Current line: 'python interface'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2067 END
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2068 call assert_equal(expected, getbufline(bufnr('Xpy3cfile'), 2, '$'))
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
2069 py3 vim.current.line = 'one line'
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
2070 call assert_equal('one line', getline('.'))
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2071 call deletebufline(bufnr('Xpy3cfile'), 1, '$')
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2072
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2073 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2074 ws = list(vim.windows)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2075 ts = list(vim.tabpages)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2076 for b in vim.buffers:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2077 if b is not cb:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2078 vim.command('bwipeout! ' + str(b.number))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2079 del b
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2080 cb.append('w.valid: ' + repr([w.valid for w in ws]))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2081 cb.append('t.valid: ' + repr([t.valid for t in ts]))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2082 del w
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2083 del t
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2084 del ts
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2085 del ws
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2086 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2087 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2088 w.valid: [True, False]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2089 t.valid: [True, False, True, False]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2090 END
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2091 call assert_equal(expected, getbufline(bufnr('Xpy3cfile'), 2, '$'))
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2092 %bw!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2093 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2094
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2095 " Test types
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2096 func Test_python3_types()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2097 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2098 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2099 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2100 for expr, attr in (
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2101 ('vim.vars', 'Dictionary'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2102 ('vim.options', 'Options'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2103 ('vim.bindeval("{}")', 'Dictionary'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2104 ('vim.bindeval("[]")', 'List'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2105 ('vim.bindeval("function(\'tr\')")', 'Function'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2106 ('vim.current.buffer', 'Buffer'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2107 ('vim.current.range', 'Range'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2108 ('vim.current.window', 'Window'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2109 ('vim.current.tabpage', 'TabPage'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2110 ):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2111 cb.append(expr + ':' + attr + ':' + \
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2112 repr(type(eval(expr)) is getattr(vim, attr)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2113 del expr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2114 del attr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2115 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2116 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2117 vim.vars:Dictionary:True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2118 vim.options:Options:True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2119 vim.bindeval("{}"):Dictionary:True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2120 vim.bindeval("[]"):List:True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2121 vim.bindeval("function('tr')"):Function:True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2122 vim.current.buffer:Buffer:True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2123 vim.current.range:Range:True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2124 vim.current.window:Window:True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2125 vim.current.tabpage:TabPage:True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2126 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2127 call assert_equal(expected, getline(2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2128 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2129
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2130 " Test __dir__() method
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2131 func Test_python3_dir_method()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2132 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2133 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2134 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2135 for name, o in (
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2136 ('current', vim.current),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2137 ('buffer', vim.current.buffer),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2138 ('window', vim.current.window),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2139 ('tabpage', vim.current.tabpage),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2140 ('range', vim.current.range),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2141 ('dictionary', vim.bindeval('{}')),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2142 ('list', vim.bindeval('[]')),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2143 ('function', vim.bindeval('function("tr")')),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2144 ('output', sys.stdout),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2145 ):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2146 cb.append(name + ':' + ','.join(dir(o)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2147 del name
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2148 del o
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2149 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2150 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2151 current:__dir__,buffer,line,range,tabpage,window
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2152 buffer:__dir__,append,mark,name,number,options,range,valid,vars
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2153 window:__dir__,buffer,col,cursor,height,number,options,row,tabpage,valid,vars,width
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2154 tabpage:__dir__,number,valid,vars,window,windows
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2155 range:__dir__,append,end,start
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2156 dictionary:__dir__,get,has_key,items,keys,locked,pop,popitem,scope,update,values
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2157 list:__dir__,extend,locked
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2158 function:__dir__,args,auto_rebind,self,softspace
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2159 output:__dir__,close,closed,flush,isatty,readable,seekable,softspace,writable,write,writelines
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2160 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2161 call assert_equal(expected, getline(2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2162 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2163
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2164 " Test vim.*.__new__
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2165 func Test_python3_new()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2166 call assert_equal({}, py3eval('vim.Dictionary({})'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2167 call assert_equal({'a': 1}, py3eval('vim.Dictionary(a=1)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2168 call assert_equal({'a': 1}, py3eval('vim.Dictionary(((''a'', 1),))'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2169 call assert_equal([], py3eval('vim.List()'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2170 call assert_equal(['a', 'b', 'c', '7'], py3eval('vim.List(iter(''abc7''))'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2171 call assert_equal(function('tr'), py3eval('vim.Function(''tr'')'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2172 call assert_equal(function('tr', [123, 3, 4]),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2173 \ py3eval('vim.Function(''tr'', args=[123, 3, 4])'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2174 call assert_equal(function('tr'), py3eval('vim.Function(''tr'', args=[])'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2175 call assert_equal(function('tr', {}),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2176 \ py3eval('vim.Function(''tr'', self={})'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2177 call assert_equal(function('tr', [123, 3, 4], {}),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2178 \ py3eval('vim.Function(''tr'', args=[123, 3, 4], self={})'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2179 call assert_equal(function('tr'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2180 \ py3eval('vim.Function(''tr'', auto_rebind=False)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2181 call assert_equal(function('tr', [123, 3, 4]),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2182 \ py3eval('vim.Function(''tr'', args=[123, 3, 4], auto_rebind=False)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2183 call assert_equal(function('tr'),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2184 \ py3eval('vim.Function(''tr'', args=[], auto_rebind=False)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2185 call assert_equal(function('tr', {}),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2186 \ py3eval('vim.Function(''tr'', self={}, auto_rebind=False)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2187 call assert_equal(function('tr', [123, 3, 4], {}),
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2188 \ py3eval('vim.Function(''tr'', args=[123, 3, 4], self={}, auto_rebind=False)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2189 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2190
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2191 " Test vim.Function
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2192 func Test_python3_vim_func()
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
2193 func Args(...)
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2194 return a:000
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2195 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2196
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
2197 func SelfArgs(...) dict
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2198 return [a:000, self]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2199 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2200
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2201 " The following four lines should not crash
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2202 let Pt = function('tr', [[]], {'l': []})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2203 py3 Pt = vim.bindeval('Pt')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2204 unlet Pt
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2205 py3 del Pt
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2206
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
2207 call assert_equal(3, py3eval('vim.strwidth("a\tb")'))
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
2208
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2209 %bw!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2210 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2211 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2212 def ecall(out_prefix, func, *args, **kwargs):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2213 line = out_prefix + ': '
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2214 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2215 ret = func(*args, **kwargs)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2216 except Exception:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2217 line += '!exception: ' + emsg(sys.exc_info())
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2218 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2219 line += '!result: ' + str(vim.Function('string')(ret), 'utf-8')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2220 cb.append(line)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2221 a = vim.Function('Args')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2222 pa1 = vim.Function('Args', args=['abcArgsPA1'])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2223 pa2 = vim.Function('Args', args=[])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2224 pa3 = vim.Function('Args', args=['abcArgsPA3'], self={'abcSelfPA3': 'abcSelfPA3Val'})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2225 pa4 = vim.Function('Args', self={'abcSelfPA4': 'abcSelfPA4Val'})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2226 cb.append('a: ' + repr(a))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2227 cb.append('pa1: ' + repr(pa1))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2228 cb.append('pa2: ' + repr(pa2))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2229 cb.append('pa3: ' + repr(pa3))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2230 cb.append('pa4: ' + repr(pa4))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2231 sa = vim.Function('SelfArgs')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2232 psa1 = vim.Function('SelfArgs', args=['abcArgsPSA1'])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2233 psa2 = vim.Function('SelfArgs', args=[])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2234 psa3 = vim.Function('SelfArgs', args=['abcArgsPSA3'], self={'abcSelfPSA3': 'abcSelfPSA3Val'})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2235 psa4 = vim.Function('SelfArgs', self={'abcSelfPSA4': 'abcSelfPSA4Val'})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2236 psa5 = vim.Function('SelfArgs', self={'abcSelfPSA5': 'abcSelfPSA5Val'}, auto_rebind=0)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2237 psa6 = vim.Function('SelfArgs', args=['abcArgsPSA6'], self={'abcSelfPSA6': 'abcSelfPSA6Val'}, auto_rebind=())
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2238 psa7 = vim.Function('SelfArgs', args=['abcArgsPSA7'], auto_rebind=[])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2239 psa8 = vim.Function('SelfArgs', auto_rebind=False)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2240 psa9 = vim.Function('SelfArgs', self={'abcSelfPSA9': 'abcSelfPSA9Val'}, auto_rebind=True)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2241 psaA = vim.Function('SelfArgs', args=['abcArgsPSAA'], self={'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=1)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2242 psaB = vim.Function('SelfArgs', args=['abcArgsPSAB'], auto_rebind={'abcARPSAB': 'abcARPSABVal'})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2243 psaC = vim.Function('SelfArgs', auto_rebind=['abcARPSAC'])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2244 cb.append('sa: ' + repr(sa))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2245 cb.append('psa1: ' + repr(psa1))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2246 cb.append('psa2: ' + repr(psa2))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2247 cb.append('psa3: ' + repr(psa3))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2248 cb.append('psa4: ' + repr(psa4))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2249 cb.append('psa5: ' + repr(psa5))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2250 cb.append('psa6: ' + repr(psa6))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2251 cb.append('psa7: ' + repr(psa7))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2252 cb.append('psa8: ' + repr(psa8))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2253 cb.append('psa9: ' + repr(psa9))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2254 cb.append('psaA: ' + repr(psaA))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2255 cb.append('psaB: ' + repr(psaB))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2256 cb.append('psaC: ' + repr(psaC))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2257
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2258 psar = vim.Function('SelfArgs', args=[{'abcArgsPSAr': 'abcArgsPSArVal'}], self={'abcSelfPSAr': 'abcSelfPSArVal'})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2259 psar.args[0]['abcArgsPSAr2'] = [psar.self, psar.args[0]]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2260 psar.self['rec'] = psar
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2261 psar.self['self'] = psar.self
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2262 psar.self['args'] = psar.args
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2263
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2264 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2265 cb.append('psar: ' + repr(psar))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2266 except Exception:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2267 cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_info()))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2268 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2269
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2270 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2271 a: <vim.Function 'Args'>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2272 pa1: <vim.Function 'Args', args=['abcArgsPA1']>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2273 pa2: <vim.Function 'Args'>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2274 pa3: <vim.Function 'Args', args=['abcArgsPA3'], self={'abcSelfPA3': 'abcSelfPA3Val'}>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2275 pa4: <vim.Function 'Args', self={'abcSelfPA4': 'abcSelfPA4Val'}>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2276 sa: <vim.Function 'SelfArgs'>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2277 psa1: <vim.Function 'SelfArgs', args=['abcArgsPSA1']>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2278 psa2: <vim.Function 'SelfArgs'>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2279 psa3: <vim.Function 'SelfArgs', args=['abcArgsPSA3'], self={'abcSelfPSA3': 'abcSelfPSA3Val'}>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2280 psa4: <vim.Function 'SelfArgs', self={'abcSelfPSA4': 'abcSelfPSA4Val'}>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2281 psa5: <vim.Function 'SelfArgs', self={'abcSelfPSA5': 'abcSelfPSA5Val'}>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2282 psa6: <vim.Function 'SelfArgs', args=['abcArgsPSA6'], self={'abcSelfPSA6': 'abcSelfPSA6Val'}>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2283 psa7: <vim.Function 'SelfArgs', args=['abcArgsPSA7']>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2284 psa8: <vim.Function 'SelfArgs'>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2285 psa9: <vim.Function 'SelfArgs', self={'abcSelfPSA9': 'abcSelfPSA9Val'}, auto_rebind=True>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2286 psaA: <vim.Function 'SelfArgs', args=['abcArgsPSAA'], self={'abcSelfPSAA': 'abcSelfPSAAVal'}, auto_rebind=True>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2287 psaB: <vim.Function 'SelfArgs', args=['abcArgsPSAB']>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2288 psaC: <vim.Function 'SelfArgs'>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2289 psar: <vim.Function 'SelfArgs', args=[{'abcArgsPSAr2': [{'rec': function('SelfArgs', [{...}], {...}), 'self': {...}, 'abcSelfPSAr': 'abcSelfPSArVal', 'args': [{...}]}, {...}], 'abcArgsPSAr': 'abcArgsPSArVal'}], self={'rec': function('SelfArgs', [{'abcArgsPSAr2': [{...}, {...}], 'abcArgsPSAr': 'abcArgsPSArVal'}], {...}), 'self': {...}, 'abcSelfPSAr': 'abcSelfPSArVal', 'args': [{'abcArgsPSAr2': [{...}, {...}], 'abcArgsPSAr': 'abcArgsPSArVal'}]}>
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2290 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2291 call assert_equal(expected, getline(2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2292 %d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2293
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2294 call assert_equal(function('Args'), py3eval('a'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2295 call assert_equal(function('Args', ['abcArgsPA1']), py3eval('pa1'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2296 call assert_equal(function('Args'), py3eval('pa2'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2297 call assert_equal(function('Args', ['abcArgsPA3'], {'abcSelfPA3': 'abcSelfPA3Val'}), py3eval('pa3'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2298 call assert_equal(function('Args', {'abcSelfPA4': 'abcSelfPA4Val'}), py3eval('pa4'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2299 call assert_equal(function('SelfArgs'), py3eval('sa'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2300 call assert_equal(function('SelfArgs', ['abcArgsPSA1']), py3eval('psa1'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2301 call assert_equal(function('SelfArgs'), py3eval('psa2'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2302 call assert_equal(function('SelfArgs', ['abcArgsPSA3'], {'abcSelfPSA3': 'abcSelfPSA3Val'}), py3eval('psa3'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2303 call assert_equal(function('SelfArgs', {'abcSelfPSA4': 'abcSelfPSA4Val'}), py3eval('psa4'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2304 call assert_equal(function('SelfArgs', {'abcSelfPSA5': 'abcSelfPSA5Val'}), py3eval('psa5'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2305 call assert_equal(function('SelfArgs', ['abcArgsPSA6'], {'abcSelfPSA6': 'abcSelfPSA6Val'}), py3eval('psa6'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2306 call assert_equal(function('SelfArgs', ['abcArgsPSA7']), py3eval('psa7'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2307 call assert_equal(function('SelfArgs'), py3eval('psa8'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2308 call assert_equal(function('SelfArgs', {'abcSelfPSA9': 'abcSelfPSA9Val'}), py3eval('psa9'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2309 call assert_equal(function('SelfArgs', ['abcArgsPSAA'], {'abcSelfPSAA': 'abcSelfPSAAVal'}), py3eval('psaA'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2310 call assert_equal(function('SelfArgs', ['abcArgsPSAB']), py3eval('psaB'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2311 call assert_equal(function('SelfArgs'), py3eval('psaC'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2312
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2313 let res = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2314 for v in ['sa', 'psa1', 'psa2', 'psa3', 'psa4', 'psa5', 'psa6', 'psa7',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2315 \ 'psa8', 'psa9', 'psaA', 'psaB', 'psaC']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2316 let d = {'f': py3eval(v)}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2317 call add(res, 'd.' .. v .. '(): ' .. string(d.f()))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2318 endfor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2319
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2320 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2321 d.sa(): [[], {'f': function('SelfArgs')}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2322 d.psa1(): [['abcArgsPSA1'], {'f': function('SelfArgs', ['abcArgsPSA1'])}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2323 d.psa2(): [[], {'f': function('SelfArgs')}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2324 d.psa3(): [['abcArgsPSA3'], {'abcSelfPSA3': 'abcSelfPSA3Val'}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2325 d.psa4(): [[], {'abcSelfPSA4': 'abcSelfPSA4Val'}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2326 d.psa5(): [[], {'abcSelfPSA5': 'abcSelfPSA5Val'}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2327 d.psa6(): [['abcArgsPSA6'], {'abcSelfPSA6': 'abcSelfPSA6Val'}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2328 d.psa7(): [['abcArgsPSA7'], {'f': function('SelfArgs', ['abcArgsPSA7'])}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2329 d.psa8(): [[], {'f': function('SelfArgs')}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2330 d.psa9(): [[], {'f': function('SelfArgs', {'abcSelfPSA9': 'abcSelfPSA9Val'})}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2331 d.psaA(): [['abcArgsPSAA'], {'f': function('SelfArgs', ['abcArgsPSAA'], {'abcSelfPSAA': 'abcSelfPSAAVal'})}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2332 d.psaB(): [['abcArgsPSAB'], {'f': function('SelfArgs', ['abcArgsPSAB'])}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2333 d.psaC(): [[], {'f': function('SelfArgs')}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2334 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2335 call assert_equal(expected, res)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2336
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2337 py3 ecall('a()', a, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2338 py3 ecall('pa1()', pa1, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2339 py3 ecall('pa2()', pa2, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2340 py3 ecall('pa3()', pa3, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2341 py3 ecall('pa4()', pa4, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2342 py3 ecall('sa()', sa, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2343 py3 ecall('psa1()', psa1, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2344 py3 ecall('psa2()', psa2, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2345 py3 ecall('psa3()', psa3, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2346 py3 ecall('psa4()', psa4, )
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2347
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2348 py3 ecall('a(42, 43)', a, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2349 py3 ecall('pa1(42, 43)', pa1, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2350 py3 ecall('pa2(42, 43)', pa2, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2351 py3 ecall('pa3(42, 43)', pa3, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2352 py3 ecall('pa4(42, 43)', pa4, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2353 py3 ecall('sa(42, 43)', sa, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2354 py3 ecall('psa1(42, 43)', psa1, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2355 py3 ecall('psa2(42, 43)', psa2, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2356 py3 ecall('psa3(42, 43)', psa3, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2357 py3 ecall('psa4(42, 43)', psa4, 42, 43)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2358
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2359 py3 ecall('a(42, self={"20": 1})', a, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2360 py3 ecall('pa1(42, self={"20": 1})', pa1, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2361 py3 ecall('pa2(42, self={"20": 1})', pa2, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2362 py3 ecall('pa3(42, self={"20": 1})', pa3, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2363 py3 ecall('pa4(42, self={"20": 1})', pa4, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2364 py3 ecall('sa(42, self={"20": 1})', sa, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2365 py3 ecall('psa1(42, self={"20": 1})', psa1, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2366 py3 ecall('psa2(42, self={"20": 1})', psa2, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2367 py3 ecall('psa3(42, self={"20": 1})', psa3, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2368 py3 ecall('psa4(42, self={"20": 1})', psa4, 42, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2369
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2370 py3 ecall('a(self={"20": 1})', a, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2371 py3 ecall('pa1(self={"20": 1})', pa1, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2372 py3 ecall('pa2(self={"20": 1})', pa2, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2373 py3 ecall('pa3(self={"20": 1})', pa3, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2374 py3 ecall('pa4(self={"20": 1})', pa4, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2375 py3 ecall('sa(self={"20": 1})', sa, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2376 py3 ecall('psa1(self={"20": 1})', psa1, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2377 py3 ecall('psa2(self={"20": 1})', psa2, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2378 py3 ecall('psa3(self={"20": 1})', psa3, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2379 py3 ecall('psa4(self={"20": 1})', psa4, self={'20': 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2380
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2381 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2382 def s(v):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2383 if v is None:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2384 return repr(v)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2385 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2386 return str(vim.Function('string')(v), 'utf-8')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2387
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2388 cb.append('a.args: ' + s(a.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2389 cb.append('pa1.args: ' + s(pa1.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2390 cb.append('pa2.args: ' + s(pa2.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2391 cb.append('pa3.args: ' + s(pa3.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2392 cb.append('pa4.args: ' + s(pa4.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2393 cb.append('sa.args: ' + s(sa.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2394 cb.append('psa1.args: ' + s(psa1.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2395 cb.append('psa2.args: ' + s(psa2.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2396 cb.append('psa3.args: ' + s(psa3.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2397 cb.append('psa4.args: ' + s(psa4.args))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2398
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2399 cb.append('a.self: ' + s(a.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2400 cb.append('pa1.self: ' + s(pa1.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2401 cb.append('pa2.self: ' + s(pa2.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2402 cb.append('pa3.self: ' + s(pa3.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2403 cb.append('pa4.self: ' + s(pa4.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2404 cb.append('sa.self: ' + s(sa.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2405 cb.append('psa1.self: ' + s(psa1.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2406 cb.append('psa2.self: ' + s(psa2.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2407 cb.append('psa3.self: ' + s(psa3.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2408 cb.append('psa4.self: ' + s(psa4.self))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2409
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2410 cb.append('a.name: ' + s(a.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2411 cb.append('pa1.name: ' + s(pa1.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2412 cb.append('pa2.name: ' + s(pa2.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2413 cb.append('pa3.name: ' + s(pa3.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2414 cb.append('pa4.name: ' + s(pa4.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2415 cb.append('sa.name: ' + s(sa.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2416 cb.append('psa1.name: ' + s(psa1.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2417 cb.append('psa2.name: ' + s(psa2.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2418 cb.append('psa3.name: ' + s(psa3.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2419 cb.append('psa4.name: ' + s(psa4.name))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2420
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2421 cb.append('a.auto_rebind: ' + s(a.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2422 cb.append('pa1.auto_rebind: ' + s(pa1.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2423 cb.append('pa2.auto_rebind: ' + s(pa2.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2424 cb.append('pa3.auto_rebind: ' + s(pa3.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2425 cb.append('pa4.auto_rebind: ' + s(pa4.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2426 cb.append('sa.auto_rebind: ' + s(sa.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2427 cb.append('psa1.auto_rebind: ' + s(psa1.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2428 cb.append('psa2.auto_rebind: ' + s(psa2.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2429 cb.append('psa3.auto_rebind: ' + s(psa3.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2430 cb.append('psa4.auto_rebind: ' + s(psa4.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2431 cb.append('psa5.auto_rebind: ' + s(psa5.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2432 cb.append('psa6.auto_rebind: ' + s(psa6.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2433 cb.append('psa7.auto_rebind: ' + s(psa7.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2434 cb.append('psa8.auto_rebind: ' + s(psa8.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2435 cb.append('psa9.auto_rebind: ' + s(psa9.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2436 cb.append('psaA.auto_rebind: ' + s(psaA.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2437 cb.append('psaB.auto_rebind: ' + s(psaB.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2438 cb.append('psaC.auto_rebind: ' + s(psaC.auto_rebind))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2439
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2440 del s
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2441
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2442 del a
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2443 del pa1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2444 del pa2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2445 del pa3
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2446 del pa4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2447 del sa
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2448 del psa1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2449 del psa2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2450 del psa3
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2451 del psa4
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2452 del psa5
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2453 del psa6
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2454 del psa7
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2455 del psa8
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2456 del psa9
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2457 del psaA
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2458 del psaB
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2459 del psaC
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2460 del psar
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2461
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2462 del ecall
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2463 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2464
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2465 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2466 a(): !result: []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2467 pa1(): !result: ['abcArgsPA1']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2468 pa2(): !result: []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2469 pa3(): !result: ['abcArgsPA3']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2470 pa4(): !result: []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2471 sa(): !exception: error:('Vim:E725: Calling dict function without Dictionary: SelfArgs',)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2472 psa1(): !exception: error:('Vim:E725: Calling dict function without Dictionary: SelfArgs',)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2473 psa2(): !exception: error:('Vim:E725: Calling dict function without Dictionary: SelfArgs',)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2474 psa3(): !result: [['abcArgsPSA3'], {'abcSelfPSA3': 'abcSelfPSA3Val'}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2475 psa4(): !result: [[], {'abcSelfPSA4': 'abcSelfPSA4Val'}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2476 a(42, 43): !result: [42, 43]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2477 pa1(42, 43): !result: ['abcArgsPA1', 42, 43]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2478 pa2(42, 43): !result: [42, 43]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2479 pa3(42, 43): !result: ['abcArgsPA3', 42, 43]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2480 pa4(42, 43): !result: [42, 43]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2481 sa(42, 43): !exception: error:('Vim:E725: Calling dict function without Dictionary: SelfArgs',)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2482 psa1(42, 43): !exception: error:('Vim:E725: Calling dict function without Dictionary: SelfArgs',)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2483 psa2(42, 43): !exception: error:('Vim:E725: Calling dict function without Dictionary: SelfArgs',)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2484 psa3(42, 43): !result: [['abcArgsPSA3', 42, 43], {'abcSelfPSA3': 'abcSelfPSA3Val'}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2485 psa4(42, 43): !result: [[42, 43], {'abcSelfPSA4': 'abcSelfPSA4Val'}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2486 a(42, self={"20": 1}): !result: [42]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2487 pa1(42, self={"20": 1}): !result: ['abcArgsPA1', 42]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2488 pa2(42, self={"20": 1}): !result: [42]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2489 pa3(42, self={"20": 1}): !result: ['abcArgsPA3', 42]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2490 pa4(42, self={"20": 1}): !result: [42]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2491 sa(42, self={"20": 1}): !result: [[42], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2492 psa1(42, self={"20": 1}): !result: [['abcArgsPSA1', 42], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2493 psa2(42, self={"20": 1}): !result: [[42], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2494 psa3(42, self={"20": 1}): !result: [['abcArgsPSA3', 42], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2495 psa4(42, self={"20": 1}): !result: [[42], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2496 a(self={"20": 1}): !result: []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2497 pa1(self={"20": 1}): !result: ['abcArgsPA1']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2498 pa2(self={"20": 1}): !result: []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2499 pa3(self={"20": 1}): !result: ['abcArgsPA3']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2500 pa4(self={"20": 1}): !result: []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2501 sa(self={"20": 1}): !result: [[], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2502 psa1(self={"20": 1}): !result: [['abcArgsPSA1'], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2503 psa2(self={"20": 1}): !result: [[], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2504 psa3(self={"20": 1}): !result: [['abcArgsPSA3'], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2505 psa4(self={"20": 1}): !result: [[], {'20': 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2506 a.args: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2507 pa1.args: ['abcArgsPA1']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2508 pa2.args: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2509 pa3.args: ['abcArgsPA3']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2510 pa4.args: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2511 sa.args: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2512 psa1.args: ['abcArgsPSA1']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2513 psa2.args: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2514 psa3.args: ['abcArgsPSA3']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2515 psa4.args: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2516 a.self: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2517 pa1.self: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2518 pa2.self: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2519 pa3.self: {'abcSelfPA3': 'abcSelfPA3Val'}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2520 pa4.self: {'abcSelfPA4': 'abcSelfPA4Val'}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2521 sa.self: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2522 psa1.self: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2523 psa2.self: None
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2524 psa3.self: {'abcSelfPSA3': 'abcSelfPSA3Val'}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2525 psa4.self: {'abcSelfPSA4': 'abcSelfPSA4Val'}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2526 a.name: 'Args'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2527 pa1.name: 'Args'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2528 pa2.name: 'Args'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2529 pa3.name: 'Args'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2530 pa4.name: 'Args'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2531 sa.name: 'SelfArgs'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2532 psa1.name: 'SelfArgs'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2533 psa2.name: 'SelfArgs'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2534 psa3.name: 'SelfArgs'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2535 psa4.name: 'SelfArgs'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2536 a.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2537 pa1.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2538 pa2.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2539 pa3.auto_rebind: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2540 pa4.auto_rebind: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2541 sa.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2542 psa1.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2543 psa2.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2544 psa3.auto_rebind: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2545 psa4.auto_rebind: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2546 psa5.auto_rebind: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2547 psa6.auto_rebind: 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2548 psa7.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2549 psa8.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2550 psa9.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2551 psaA.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2552 psaB.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2553 psaC.auto_rebind: 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2554 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2555 call assert_equal(expected, getline(2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2556 %bw!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2557 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2558
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2559 " Test stdout/stderr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2560 func Test_python3_stdin_stderr()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2561 let caught_writeerr = 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2562 let caught_writelineerr = 0
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2563 redir => messages
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2564 py3 sys.stdout.write('abc8') ; sys.stdout.write('def')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2565 try
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2566 py3 sys.stderr.write('abc9') ; sys.stderr.write('def')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2567 catch /abc9def/
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2568 let caught_writeerr = 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2569 endtry
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2570 py3 sys.stdout.writelines(iter('abcA'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2571 try
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2572 py3 sys.stderr.writelines(iter('abcB'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2573 catch /abcB/
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2574 let caught_writelineerr = 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2575 endtry
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2576 redir END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2577 call assert_equal("\nabc8def\nabcA", messages)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2578 call assert_equal(1, caught_writeerr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2579 call assert_equal(1, caught_writelineerr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2580 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2581
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2582 " Test subclassing
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2583 func Test_python3_subclass()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2584 new
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2585 func Put(...)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2586 return a:000
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2587 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2588
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2589 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2590 class DupDict(vim.Dictionary):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2591 def __setitem__(self, key, value):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2592 super(DupDict, self).__setitem__(key, value)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2593 super(DupDict, self).__setitem__('dup_' + key, value)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2594 dd = DupDict()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2595 dd['a'] = 'b'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2596
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2597 class DupList(vim.List):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2598 def __getitem__(self, idx):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2599 return [super(DupList, self).__getitem__(idx)] * 2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2600
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2601 dl = DupList()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2602 dl2 = DupList(iter('abcC'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2603 dl.extend(dl2[0])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2604
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2605 class DupFun(vim.Function):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2606 def __call__(self, arg):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2607 return super(DupFun, self).__call__(arg, arg)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2608
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2609 df = DupFun('Put')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2610 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2611
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2612 call assert_equal(['a', 'dup_a'], sort(keys(py3eval('dd'))))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2613 call assert_equal(['a', 'a'], py3eval('dl'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2614 call assert_equal(['a', 'b', 'c', 'C'], py3eval('dl2'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2615 call assert_equal([2, 2], py3eval('df(2)'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2616 call assert_equal(1, py3eval('dl') is# py3eval('dl'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2617 call assert_equal(1, py3eval('dd') is# py3eval('dd'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2618 call assert_equal(function('Put'), py3eval('df'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2619 delfunction Put
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2620 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2621 del DupDict
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2622 del DupList
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2623 del DupFun
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2624 del dd
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2625 del dl
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2626 del dl2
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2627 del df
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2628 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2629 close!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2630 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2631
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2632 " Test chdir
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2633 func Test_python3_chdir()
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2634 new Xp3cdfile
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2635 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2636 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2637 import os
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2638 fnamemodify = vim.Function('fnamemodify')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2639 cb.append(str(fnamemodify('.', ':p:h:t')))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2640 cb.append(vim.eval('@%'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2641 os.chdir('..')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2642 path = fnamemodify('.', ':p:h:t')
22011
2b6d696b063d patch 8.2.1555: not all tests are executed on Github Actions
Bram Moolenaar <Bram@vim.org>
parents: 21977
diff changeset
2643 if path != b'src' and path != b'src2':
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2644 # Running tests from a shadow directory, so move up another level
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2645 # This will result in @% looking like shadow/testdir/Xp3cdfile, hence the
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2646 # slicing to remove the leading path and path separator
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2647 os.chdir('..')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2648 cb.append(str(fnamemodify('.', ':p:h:t')))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2649 cb.append(vim.eval('@%')[len(path)+1:].replace(os.path.sep, '/'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2650 os.chdir(path)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2651 else:
22011
2b6d696b063d patch 8.2.1555: not all tests are executed on Github Actions
Bram Moolenaar <Bram@vim.org>
parents: 21977
diff changeset
2652 # Also accept running from src2/testdir/ for MS-Windows CI.
2b6d696b063d patch 8.2.1555: not all tests are executed on Github Actions
Bram Moolenaar <Bram@vim.org>
parents: 21977
diff changeset
2653 cb.append(str(fnamemodify('.', ':p:h:t').replace(b'src2', b'src')))
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2654 cb.append(vim.eval('@%').replace(os.path.sep, '/'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2655 del path
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2656 os.chdir('testdir')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2657 cb.append(str(fnamemodify('.', ':p:h:t')))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2658 cb.append(vim.eval('@%'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2659 del fnamemodify
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2660 EOF
30051
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2661 call assert_equal(["b'testdir'", 'Xp3cdfile', "b'src'", 'testdir/Xp3cdfile',
13b02c1ea0f7 patch 9.0.0363: common names in test files causes tests to be flaky
Bram Moolenaar <Bram@vim.org>
parents: 29020
diff changeset
2662 \"b'testdir'", 'Xp3cdfile'], getline(2, '$'))
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2663 close!
21200
37edecbfb834 patch 8.2.1151: insufficient test coverage for Python
Bram Moolenaar <Bram@vim.org>
parents: 21198
diff changeset
2664 call AssertException(["py3 vim.chdir(None)"], "Vim(py3):TypeError:")
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2665 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2666
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2667 " Test errors
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2668 func Test_python3_errors()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2669 func F() dict
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2670 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2671
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2672 func D()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2673 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2674
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2675 new
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2676 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2677
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2678 py3 << trim EOF
26139
97b4e8c55c1d patch 8.2.3602: Python3 test fails with Python 3.10 on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 25903
diff changeset
2679 import os
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2680 d = vim.Dictionary()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2681 ned = vim.Dictionary(foo='bar', baz='abcD')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2682 dl = vim.Dictionary(a=1)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2683 dl.locked = True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2684 l = vim.List()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2685 ll = vim.List('abcE')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2686 ll.locked = True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2687 nel = vim.List('abcO')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2688 f = vim.Function('string')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2689 fd = vim.Function('F')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2690 fdel = vim.Function('D')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2691 vim.command('delfunction D')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2692
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2693 def subexpr_test(expr, name, subexprs):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2694 cb.append('>>> Testing %s using %s' % (name, expr))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2695 for subexpr in subexprs:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2696 ee(expr % subexpr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2697 cb.append('<<< Finished')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2698
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2699 def stringtochars_test(expr):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2700 return subexpr_test(expr, 'StringToChars', (
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2701 '1', # Fail type checks
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2702 'b"\\0"', # Fail PyString_AsStringAndSize(object, , NULL) check
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2703 '"\\0"', # Fail PyString_AsStringAndSize(bytes, , NULL) check
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2704 ))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2705
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2706 class Mapping(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2707 def __init__(self, d):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2708 self.d = d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2709
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2710 def __getitem__(self, key):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2711 return self.d[key]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2712
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2713 def keys(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2714 return self.d.keys()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2715
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2716 def items(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2717 return self.d.items()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2718
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2719 def convertfrompyobject_test(expr, recurse=True):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2720 # pydict_to_tv
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2721 stringtochars_test(expr % '{%s : 1}')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2722 if recurse:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2723 convertfrompyobject_test(expr % '{"abcF" : %s}', False)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2724 # pymap_to_tv
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2725 stringtochars_test(expr % 'Mapping({%s : 1})')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2726 if recurse:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2727 convertfrompyobject_test(expr % 'Mapping({"abcG" : %s})', False)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2728 # pyseq_to_tv
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2729 iter_test(expr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2730 return subexpr_test(expr, 'ConvertFromPyObject', (
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2731 'None', # Not conversible
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2732 '{b"": 1}', # Empty key not allowed
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2733 '{"": 1}', # Same, but with unicode object
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2734 'FailingMapping()', #
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2735 'FailingMappingKey()', #
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2736 'FailingNumber()', #
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2737 ))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2738
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2739 def convertfrompymapping_test(expr):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2740 convertfrompyobject_test(expr)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2741 return subexpr_test(expr, 'ConvertFromPyMapping', (
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2742 '[]',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2743 ))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2744
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2745 def iter_test(expr):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2746 return subexpr_test(expr, '*Iter*', (
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2747 'FailingIter()',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2748 'FailingIterNext()',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2749 ))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2750
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2751 def number_test(expr, natural=False, unsigned=False):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2752 if natural:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2753 unsigned = True
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2754 return subexpr_test(expr, 'NumberToLong', (
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2755 '[]',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2756 'None',
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2757 ) + (('-1',) if unsigned else ())
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2758 + (('0',) if natural else ()))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2759
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2760 class FailingTrue(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2761 def __bool__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2762 raise NotImplementedError('bool')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2763
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2764 class FailingIter(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2765 def __iter__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2766 raise NotImplementedError('iter')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2767
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2768 class FailingIterNext(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2769 def __iter__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2770 return self
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2771
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2772 def __next__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2773 raise NotImplementedError('next')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2774
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2775 class FailingIterNextN(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2776 def __init__(self, n):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2777 self.n = n
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2778
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2779 def __iter__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2780 return self
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2781
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2782 def __next__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2783 if self.n:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2784 self.n -= 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2785 return 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2786 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2787 raise NotImplementedError('next N')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2788
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2789 class FailingMappingKey(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2790 def __getitem__(self, item):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2791 raise NotImplementedError('getitem:mappingkey')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2792
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2793 def keys(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2794 return list("abcH")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2795
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2796 class FailingMapping(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2797 def __getitem__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2798 raise NotImplementedError('getitem:mapping')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2799
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2800 def keys(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2801 raise NotImplementedError('keys')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2802
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2803 class FailingList(list):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2804 def __getitem__(self, idx):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2805 if i == 2:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2806 raise NotImplementedError('getitem:list')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2807 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2808 return super(FailingList, self).__getitem__(idx)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2809
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2810 class NoArgsCall(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2811 def __call__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2812 pass
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2813
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2814 class FailingCall(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2815 def __call__(self, path):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2816 raise NotImplementedError('call')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2817
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2818 class FailingNumber(object):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2819 def __int__(self):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2820 raise NotImplementedError('int')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2821
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2822 cb.append("> Output")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2823 cb.append(">> OutputSetattr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2824 ee('del sys.stdout.softspace')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2825 number_test('sys.stdout.softspace = %s', unsigned=True)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2826 number_test('sys.stderr.softspace = %s', unsigned=True)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2827 ee('assert sys.stdout.isatty()==False')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2828 ee('assert sys.stdout.seekable()==False')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2829 ee('sys.stdout.close()')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2830 ee('sys.stdout.flush()')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2831 ee('assert sys.stderr.isatty()==False')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2832 ee('assert sys.stderr.seekable()==False')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2833 ee('sys.stderr.close()')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2834 ee('sys.stderr.flush()')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2835 ee('sys.stdout.attr = None')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2836 cb.append(">> OutputWrite")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2837 ee('assert sys.stdout.writable()==True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2838 ee('assert sys.stdout.readable()==False')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2839 ee('assert sys.stderr.writable()==True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2840 ee('assert sys.stderr.readable()==False')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2841 ee('assert sys.stdout.closed()==False')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2842 ee('assert sys.stderr.closed()==False')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2843 ee('assert sys.stdout.errors=="strict"')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2844 ee('assert sys.stderr.errors=="strict"')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2845 ee('assert sys.stdout.encoding==sys.stderr.encoding')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2846 ee('sys.stdout.write(None)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2847 cb.append(">> OutputWriteLines")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2848 ee('sys.stdout.writelines(None)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2849 ee('sys.stdout.writelines([1])')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2850 iter_test('sys.stdout.writelines(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2851 cb.append("> VimCommand")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2852 stringtochars_test('vim.command(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2853 ee('vim.command("", 2)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2854 #! Not checked: vim->python exceptions translating: checked later
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2855 cb.append("> VimToPython")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2856 #! Not checked: everything: needs errors in internal python functions
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2857 cb.append("> VimEval")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2858 stringtochars_test('vim.eval(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2859 ee('vim.eval("", FailingTrue())')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2860 #! Not checked: everything: needs errors in internal python functions
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2861 cb.append("> VimEvalPy")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2862 stringtochars_test('vim.bindeval(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2863 ee('vim.eval("", 2)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2864 #! Not checked: vim->python exceptions translating: checked later
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2865 cb.append("> VimStrwidth")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2866 stringtochars_test('vim.strwidth(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2867 cb.append("> VimForeachRTP")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2868 ee('vim.foreach_rtp(None)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2869 ee('vim.foreach_rtp(NoArgsCall())')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2870 ee('vim.foreach_rtp(FailingCall())')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2871 ee('vim.foreach_rtp(int, 2)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2872 cb.append('> import')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2873 old_rtp = vim.options['rtp']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2874 vim.options['rtp'] = os.getcwd().replace('\\', '\\\\').replace(',', '\\,')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2875 ee('import xxx_no_such_module_xxx')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2876 ee('import failing_import')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2877 ee('import failing')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2878 vim.options['rtp'] = old_rtp
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2879 del old_rtp
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2880 cb.append("> Options")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2881 cb.append(">> OptionsItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2882 ee('vim.options["abcQ"]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2883 ee('vim.options[""]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2884 stringtochars_test('vim.options[%s]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2885 cb.append(">> OptionsContains")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2886 stringtochars_test('%s in vim.options')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2887 cb.append("> Dictionary")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2888 cb.append(">> DictionaryConstructor")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2889 ee('vim.Dictionary("abcI")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2890 ##! Not checked: py_dict_alloc failure
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2891 cb.append(">> DictionarySetattr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2892 ee('del d.locked')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2893 ee('d.locked = FailingTrue()')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2894 ee('vim.vvars.locked = False')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2895 ee('d.scope = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2896 ee('d.xxx = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2897 cb.append(">> _DictionaryItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2898 ee('d.get("a", 2, 3)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2899 stringtochars_test('d.get(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2900 ee('d.pop("a")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2901 ee('dl.pop("a")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2902 cb.append(">> DictionaryContains")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2903 ee('"" in d')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2904 ee('0 in d')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2905 cb.append(">> DictionaryIterNext")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2906 ee('for i in ned: ned["a"] = 1')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2907 del i
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2908 cb.append(">> DictionaryAssItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2909 ee('dl["b"] = 1')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2910 stringtochars_test('d[%s] = 1')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2911 convertfrompyobject_test('d["a"] = %s')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2912 cb.append(">> DictionaryUpdate")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2913 cb.append(">>> kwargs")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2914 cb.append(">>> iter")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2915 ee('d.update(FailingMapping())')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2916 ee('d.update([FailingIterNext()])')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2917 ee('d.update([FailingIterNextN(1)])')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2918 iter_test('d.update(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2919 convertfrompyobject_test('d.update(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2920 stringtochars_test('d.update(((%s, 0),))')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2921 convertfrompyobject_test('d.update((("a", %s),))')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2922 cb.append(">> DictionaryPopItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2923 ee('d.popitem(1, 2)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2924 cb.append(">> DictionaryHasKey")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2925 ee('d.has_key()')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2926 cb.append("> List")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2927 cb.append(">> ListConstructor")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2928 ee('vim.List(1, 2)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2929 ee('vim.List(a=1)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2930 iter_test('vim.List(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2931 convertfrompyobject_test('vim.List([%s])')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2932 cb.append(">> ListItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2933 ee('l[1000]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2934 cb.append(">> ListAssItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2935 ee('ll[1] = 2')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2936 ee('l[1000] = 3')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2937 cb.append(">> ListAssSlice")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2938 ee('ll[1:100] = "abcJ"')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2939 iter_test('l[:] = %s')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2940 ee('nel[1:10:2] = "abcK"')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2941 cb.append(repr(tuple(nel)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2942 ee('nel[1:10:2] = "a"')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2943 cb.append(repr(tuple(nel)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2944 ee('nel[1:1:-1] = "a"')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2945 cb.append(repr(tuple(nel)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2946 ee('nel[:] = FailingIterNextN(2)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2947 cb.append(repr(tuple(nel)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2948 convertfrompyobject_test('l[:] = [%s]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2949 cb.append(">> ListConcatInPlace")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2950 iter_test('l.extend(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2951 convertfrompyobject_test('l.extend([%s])')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2952 cb.append(">> ListSetattr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2953 ee('del l.locked')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2954 ee('l.locked = FailingTrue()')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2955 ee('l.xxx = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2956 cb.append("> Function")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2957 cb.append(">> FunctionConstructor")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2958 cb.append(">>> FunctionConstructor")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2959 ee('vim.Function("123")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2960 ee('vim.Function("xxx_non_existent_function_xxx")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2961 ee('vim.Function("xxx#non#existent#function#xxx")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2962 ee('vim.Function("xxx_non_existent_function_xxx2", args=[])')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2963 ee('vim.Function("xxx_non_existent_function_xxx3", self={})')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2964 ee('vim.Function("xxx_non_existent_function_xxx4", args=[], self={})')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2965 cb.append(">>> FunctionNew")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2966 ee('vim.Function("tr", self="abcFuncSelf")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2967 ee('vim.Function("tr", args=427423)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2968 ee('vim.Function("tr", self="abcFuncSelf2", args="abcFuncArgs2")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2969 ee('vim.Function(self="abcFuncSelf2", args="abcFuncArgs2")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2970 ee('vim.Function("tr", "", self="abcFuncSelf2", args="abcFuncArgs2")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2971 ee('vim.Function("tr", "")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2972 cb.append(">> FunctionCall")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2973 convertfrompyobject_test('f(%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2974 convertfrompymapping_test('fd(self=%s)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2975 cb.append("> TabPage")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2976 cb.append(">> TabPageAttr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2977 ee('vim.current.tabpage.xxx')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2978 cb.append("> TabList")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2979 cb.append(">> TabListItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2980 ee('vim.tabpages[1000]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2981 cb.append("> Window")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2982 cb.append(">> WindowAttr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2983 ee('vim.current.window.xxx')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2984 cb.append(">> WindowSetattr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2985 ee('vim.current.window.buffer = 0')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2986 ee('vim.current.window.cursor = (100000000, 100000000)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2987 ee('vim.current.window.cursor = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2988 number_test('vim.current.window.height = %s', unsigned=True)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2989 number_test('vim.current.window.width = %s', unsigned=True)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2990 ee('vim.current.window.xxxxxx = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2991 cb.append("> WinList")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2992 cb.append(">> WinListItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2993 ee('vim.windows[1000]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2994 cb.append("> Buffer")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2995 cb.append(">> StringToLine (indirect)")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2996 ee('vim.current.buffer[0] = "\\na"')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2997 ee('vim.current.buffer[0] = b"\\na"')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2998 cb.append(">> SetBufferLine (indirect)")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
2999 ee('vim.current.buffer[0] = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3000 cb.append(">> SetBufferLineList (indirect)")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3001 ee('vim.current.buffer[:] = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3002 ee('vim.current.buffer[:] = ["\\na", "bc"]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3003 cb.append(">> InsertBufferLines (indirect)")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3004 ee('vim.current.buffer.append(None)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3005 ee('vim.current.buffer.append(["\\na", "bc"])')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3006 ee('vim.current.buffer.append("\\nbc")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3007 cb.append(">> RBItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3008 ee('vim.current.buffer[100000000]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3009 cb.append(">> RBAsItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3010 ee('vim.current.buffer[100000000] = ""')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3011 cb.append(">> BufferAttr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3012 ee('vim.current.buffer.xxx')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3013 cb.append(">> BufferSetattr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3014 ee('vim.current.buffer.name = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3015 ee('vim.current.buffer.xxx = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3016 cb.append(">> BufferMark")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3017 ee('vim.current.buffer.mark(0)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3018 ee('vim.current.buffer.mark("abcM")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3019 ee('vim.current.buffer.mark("!")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3020 cb.append(">> BufferRange")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3021 ee('vim.current.buffer.range(1, 2, 3)')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3022 cb.append("> BufMap")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3023 cb.append(">> BufMapItem")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3024 ee('vim.buffers[100000000]')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3025 number_test('vim.buffers[%s]', natural=True)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3026 cb.append("> Current")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3027 cb.append(">> CurrentGetattr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3028 ee('vim.current.xxx')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3029 cb.append(">> CurrentSetattr")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3030 ee('vim.current.line = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3031 ee('vim.current.buffer = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3032 ee('vim.current.window = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3033 ee('vim.current.tabpage = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3034 ee('vim.current.xxx = True')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3035 del d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3036 del ned
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3037 del dl
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3038 del l
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3039 del ll
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3040 del nel
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3041 del f
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3042 del fd
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3043 del fdel
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3044 del subexpr_test
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3045 del stringtochars_test
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3046 del Mapping
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3047 del convertfrompyobject_test
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3048 del convertfrompymapping_test
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3049 del iter_test
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3050 del number_test
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3051 del FailingTrue
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3052 del FailingIter
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3053 del FailingIterNext
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3054 del FailingIterNextN
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3055 del FailingMapping
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3056 del FailingMappingKey
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3057 del FailingList
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3058 del NoArgsCall
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3059 del FailingCall
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3060 del FailingNumber
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3061 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3062 delfunction F
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3063
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3064 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3065 > Output
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3066 >> OutputSetattr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3067 del sys.stdout.softspace:(<class 'AttributeError'>, AttributeError('cannot delete OutputObject attributes',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3068 >>> Testing NumberToLong using sys.stdout.softspace = %s
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3069 sys.stdout.softspace = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3070 sys.stdout.softspace = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3071 sys.stdout.softspace = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3072 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3073 >>> Testing NumberToLong using sys.stderr.softspace = %s
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3074 sys.stderr.softspace = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3075 sys.stderr.softspace = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3076 sys.stderr.softspace = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3077 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3078 assert sys.stdout.isatty()==False:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3079 assert sys.stdout.seekable()==False:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3080 sys.stdout.close():NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3081 sys.stdout.flush():NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3082 assert sys.stderr.isatty()==False:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3083 assert sys.stderr.seekable()==False:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3084 sys.stderr.close():NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3085 sys.stderr.flush():NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3086 sys.stdout.attr = None:(<class 'AttributeError'>, AttributeError('invalid attribute: attr',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3087 >> OutputWrite
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3088 assert sys.stdout.writable()==True:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3089 assert sys.stdout.readable()==False:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3090 assert sys.stderr.writable()==True:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3091 assert sys.stderr.readable()==False:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3092 assert sys.stdout.closed()==False:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3093 assert sys.stderr.closed()==False:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3094 assert sys.stdout.errors=="strict":NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3095 assert sys.stderr.errors=="strict":NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3096 assert sys.stdout.encoding==sys.stderr.encoding:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3097 sys.stdout.write(None):(<class 'TypeError'>, TypeError("Can't convert 'NoneType' object to str implicitly",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3098 >> OutputWriteLines
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3099 sys.stdout.writelines(None):(<class 'TypeError'>, TypeError("'NoneType' object is not iterable",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3100 sys.stdout.writelines([1]):(<class 'TypeError'>, TypeError("Can't convert 'int' object to str implicitly",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3101 >>> Testing *Iter* using sys.stdout.writelines(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3102 sys.stdout.writelines(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3103 sys.stdout.writelines(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3104 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3105 > VimCommand
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3106 >>> Testing StringToChars using vim.command(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3107 vim.command(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3108 vim.command(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3109 vim.command("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3110 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3111 vim.command("", 2):(<class 'TypeError'>, TypeError('command() takes exactly one argument (2 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3112 > VimToPython
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3113 > VimEval
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3114 >>> Testing StringToChars using vim.eval(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3115 vim.eval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3116 vim.eval(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3117 vim.eval("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3118 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3119 vim.eval("", FailingTrue()):(<class 'TypeError'>, TypeError('function takes exactly 1 argument (2 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3120 > VimEvalPy
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3121 >>> Testing StringToChars using vim.bindeval(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3122 vim.bindeval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3123 vim.bindeval(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3124 vim.bindeval("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3125 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3126 vim.eval("", 2):(<class 'TypeError'>, TypeError('function takes exactly 1 argument (2 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3127 > VimStrwidth
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3128 >>> Testing StringToChars using vim.strwidth(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3129 vim.strwidth(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3130 vim.strwidth(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3131 vim.strwidth("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3132 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3133 > VimForeachRTP
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3134 vim.foreach_rtp(None):(<class 'TypeError'>, TypeError("'NoneType' object is not callable",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3135 vim.foreach_rtp(NoArgsCall()):(<class 'TypeError'>, TypeError('__call__() takes exactly 1 positional argument (2 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3136 vim.foreach_rtp(FailingCall()):(<class 'NotImplementedError'>, NotImplementedError('call',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3137 vim.foreach_rtp(int, 2):(<class 'TypeError'>, TypeError('foreach_rtp() takes exactly one argument (2 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3138 > import
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3139 import xxx_no_such_module_xxx:(<class 'ImportError'>, ImportError('No module named xxx_no_such_module_xxx',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3140 import failing_import:(<class 'ImportError'>, ImportError())
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3141 import failing:(<class 'NotImplementedError'>, NotImplementedError())
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3142 > Options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3143 >> OptionsItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3144 vim.options["abcQ"]:(<class 'KeyError'>, KeyError('abcQ',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3145 vim.options[""]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3146 >>> Testing StringToChars using vim.options[%s]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3147 vim.options[1]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3148 vim.options[b"\0"]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3149 vim.options["\0"]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3150 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3151 >> OptionsContains
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3152 >>> Testing StringToChars using %s in vim.options
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3153 1 in vim.options:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3154 b"\0" in vim.options:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3155 "\0" in vim.options:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3156 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3157 > Dictionary
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3158 >> DictionaryConstructor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3159 vim.Dictionary("abcI"):(<class 'ValueError'>, ValueError('expected sequence element of size 2, but got sequence of size 1',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3160 >> DictionarySetattr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3161 del d.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.Dictionary attributes',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3162 d.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError('bool',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3163 vim.vvars.locked = False:(<class 'TypeError'>, TypeError('cannot modify fixed dictionary',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3164 d.scope = True:(<class 'AttributeError'>, AttributeError('cannot set attribute scope',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3165 d.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3166 >> _DictionaryItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3167 d.get("a", 2, 3):(<class 'TypeError'>, TypeError('function takes at most 2 arguments (3 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3168 >>> Testing StringToChars using d.get(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3169 d.get(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3170 d.get(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3171 d.get("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3172 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3173 d.pop("a"):(<class 'KeyError'>, KeyError('a',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3174 dl.pop("a"):(<class 'vim.error'>, error('dictionary is locked',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3175 >> DictionaryContains
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3176 "" in d:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3177 0 in d:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3178 >> DictionaryIterNext
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3179 for i in ned: ned["a"] = 1:(<class 'RuntimeError'>, RuntimeError('hashtab changed during iteration',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3180 >> DictionaryAssItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3181 dl["b"] = 1:(<class 'vim.error'>, error('dictionary is locked',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3182 >>> Testing StringToChars using d[%s] = 1
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3183 d[1] = 1:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3184 d[b"\0"] = 1:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3185 d["\0"] = 1:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3186 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3187 >>> Testing StringToChars using d["a"] = {%s : 1}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3188 d["a"] = {1 : 1}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3189 d["a"] = {b"\0" : 1}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3190 d["a"] = {"\0" : 1}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3191 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3192 >>> Testing StringToChars using d["a"] = {"abcF" : {%s : 1}}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3193 d["a"] = {"abcF" : {1 : 1}}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3194 d["a"] = {"abcF" : {b"\0" : 1}}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3195 d["a"] = {"abcF" : {"\0" : 1}}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3196 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3197 >>> Testing StringToChars using d["a"] = {"abcF" : Mapping({%s : 1})}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3198 d["a"] = {"abcF" : Mapping({1 : 1})}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3199 d["a"] = {"abcF" : Mapping({b"\0" : 1})}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3200 d["a"] = {"abcF" : Mapping({"\0" : 1})}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3201 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3202 >>> Testing *Iter* using d["a"] = {"abcF" : %s}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3203 d["a"] = {"abcF" : FailingIter()}:(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3204 d["a"] = {"abcF" : FailingIterNext()}:(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3205 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3206 >>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s}
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3207 d["a"] = {"abcF" : None}:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3208 d["a"] = {"abcF" : {b"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3209 d["a"] = {"abcF" : {"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3210 d["a"] = {"abcF" : FailingMapping()}:(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3211 d["a"] = {"abcF" : FailingMappingKey()}:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3212 d["a"] = {"abcF" : FailingNumber()}:(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3213 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3214 >>> Testing StringToChars using d["a"] = Mapping({%s : 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3215 d["a"] = Mapping({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3216 d["a"] = Mapping({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3217 d["a"] = Mapping({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3218 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3219 >>> Testing StringToChars using d["a"] = Mapping({"abcG" : {%s : 1}})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3220 d["a"] = Mapping({"abcG" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3221 d["a"] = Mapping({"abcG" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3222 d["a"] = Mapping({"abcG" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3223 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3224 >>> Testing StringToChars using d["a"] = Mapping({"abcG" : Mapping({%s : 1})})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3225 d["a"] = Mapping({"abcG" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3226 d["a"] = Mapping({"abcG" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3227 d["a"] = Mapping({"abcG" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3228 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3229 >>> Testing *Iter* using d["a"] = Mapping({"abcG" : %s})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3230 d["a"] = Mapping({"abcG" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3231 d["a"] = Mapping({"abcG" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3232 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3233 >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abcG" : %s})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3234 d["a"] = Mapping({"abcG" : None}):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3235 d["a"] = Mapping({"abcG" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3236 d["a"] = Mapping({"abcG" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3237 d["a"] = Mapping({"abcG" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3238 d["a"] = Mapping({"abcG" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3239 d["a"] = Mapping({"abcG" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3240 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3241 >>> Testing *Iter* using d["a"] = %s
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3242 d["a"] = FailingIter():(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3243 d["a"] = FailingIterNext():(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3244 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3245 >>> Testing ConvertFromPyObject using d["a"] = %s
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3246 d["a"] = None:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3247 d["a"] = {b"": 1}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3248 d["a"] = {"": 1}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3249 d["a"] = FailingMapping():(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3250 d["a"] = FailingMappingKey():(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3251 d["a"] = FailingNumber():(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3252 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3253 >> DictionaryUpdate
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3254 >>> kwargs
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3255 >>> iter
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3256 d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3257 d.update([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3258 d.update([FailingIterNextN(1)]):(<class 'NotImplementedError'>, NotImplementedError('next N',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3259 >>> Testing *Iter* using d.update(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3260 d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3261 d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3262 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3263 >>> Testing StringToChars using d.update({%s : 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3264 d.update({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3265 d.update({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3266 d.update({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3267 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3268 >>> Testing StringToChars using d.update({"abcF" : {%s : 1}})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3269 d.update({"abcF" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3270 d.update({"abcF" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3271 d.update({"abcF" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3272 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3273 >>> Testing StringToChars using d.update({"abcF" : Mapping({%s : 1})})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3274 d.update({"abcF" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3275 d.update({"abcF" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3276 d.update({"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3277 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3278 >>> Testing *Iter* using d.update({"abcF" : %s})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3279 d.update({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3280 d.update({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3281 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3282 >>> Testing ConvertFromPyObject using d.update({"abcF" : %s})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3283 d.update({"abcF" : None}):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3284 d.update({"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3285 d.update({"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3286 d.update({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3287 d.update({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3288 d.update({"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3289 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3290 >>> Testing StringToChars using d.update(Mapping({%s : 1}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3291 d.update(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3292 d.update(Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3293 d.update(Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3294 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3295 >>> Testing StringToChars using d.update(Mapping({"abcG" : {%s : 1}}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3296 d.update(Mapping({"abcG" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3297 d.update(Mapping({"abcG" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3298 d.update(Mapping({"abcG" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3299 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3300 >>> Testing StringToChars using d.update(Mapping({"abcG" : Mapping({%s : 1})}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3301 d.update(Mapping({"abcG" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3302 d.update(Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3303 d.update(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3304 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3305 >>> Testing *Iter* using d.update(Mapping({"abcG" : %s}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3306 d.update(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3307 d.update(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3308 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3309 >>> Testing ConvertFromPyObject using d.update(Mapping({"abcG" : %s}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3310 d.update(Mapping({"abcG" : None})):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3311 d.update(Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3312 d.update(Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3313 d.update(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3314 d.update(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3315 d.update(Mapping({"abcG" : FailingNumber()})):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3316 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3317 >>> Testing *Iter* using d.update(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3318 d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3319 d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3320 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3321 >>> Testing ConvertFromPyObject using d.update(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3322 d.update(None):(<class 'TypeError'>, TypeError("'NoneType' object is not iterable",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3323 d.update({b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3324 d.update({"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3325 d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3326 d.update(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3327 d.update(FailingNumber()):(<class 'TypeError'>, TypeError("'FailingNumber' object is not iterable",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3328 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3329 >>> Testing StringToChars using d.update(((%s, 0),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3330 d.update(((1, 0),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3331 d.update(((b"\0", 0),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3332 d.update((("\0", 0),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3333 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3334 >>> Testing StringToChars using d.update((("a", {%s : 1}),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3335 d.update((("a", {1 : 1}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3336 d.update((("a", {b"\0" : 1}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3337 d.update((("a", {"\0" : 1}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3338 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3339 >>> Testing StringToChars using d.update((("a", {"abcF" : {%s : 1}}),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3340 d.update((("a", {"abcF" : {1 : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3341 d.update((("a", {"abcF" : {b"\0" : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3342 d.update((("a", {"abcF" : {"\0" : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3343 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3344 >>> Testing StringToChars using d.update((("a", {"abcF" : Mapping({%s : 1})}),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3345 d.update((("a", {"abcF" : Mapping({1 : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3346 d.update((("a", {"abcF" : Mapping({b"\0" : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3347 d.update((("a", {"abcF" : Mapping({"\0" : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3348 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3349 >>> Testing *Iter* using d.update((("a", {"abcF" : %s}),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3350 d.update((("a", {"abcF" : FailingIter()}),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3351 d.update((("a", {"abcF" : FailingIterNext()}),)):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3352 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3353 >>> Testing ConvertFromPyObject using d.update((("a", {"abcF" : %s}),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3354 d.update((("a", {"abcF" : None}),)):(<class 'vim.error'>, error("failed to add key 'a' to dictionary",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3355 d.update((("a", {"abcF" : {b"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3356 d.update((("a", {"abcF" : {"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3357 d.update((("a", {"abcF" : FailingMapping()}),)):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3358 d.update((("a", {"abcF" : FailingMappingKey()}),)):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3359 d.update((("a", {"abcF" : FailingNumber()}),)):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3360 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3361 >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3362 d.update((("a", Mapping({1 : 1})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3363 d.update((("a", Mapping({b"\0" : 1})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3364 d.update((("a", Mapping({"\0" : 1})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3365 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3366 >>> Testing StringToChars using d.update((("a", Mapping({"abcG" : {%s : 1}})),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3367 d.update((("a", Mapping({"abcG" : {1 : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3368 d.update((("a", Mapping({"abcG" : {b"\0" : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3369 d.update((("a", Mapping({"abcG" : {"\0" : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3370 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3371 >>> Testing StringToChars using d.update((("a", Mapping({"abcG" : Mapping({%s : 1})})),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3372 d.update((("a", Mapping({"abcG" : Mapping({1 : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3373 d.update((("a", Mapping({"abcG" : Mapping({b"\0" : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3374 d.update((("a", Mapping({"abcG" : Mapping({"\0" : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3375 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3376 >>> Testing *Iter* using d.update((("a", Mapping({"abcG" : %s})),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3377 d.update((("a", Mapping({"abcG" : FailingIter()})),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3378 d.update((("a", Mapping({"abcG" : FailingIterNext()})),)):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3379 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3380 >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abcG" : %s})),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3381 d.update((("a", Mapping({"abcG" : None})),)):(<class 'vim.error'>, error("failed to add key 'a' to dictionary",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3382 d.update((("a", Mapping({"abcG" : {b"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3383 d.update((("a", Mapping({"abcG" : {"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3384 d.update((("a", Mapping({"abcG" : FailingMapping()})),)):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3385 d.update((("a", Mapping({"abcG" : FailingMappingKey()})),)):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3386 d.update((("a", Mapping({"abcG" : FailingNumber()})),)):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3387 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3388 >>> Testing *Iter* using d.update((("a", %s),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3389 d.update((("a", FailingIter()),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3390 d.update((("a", FailingIterNext()),)):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3391 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3392 >>> Testing ConvertFromPyObject using d.update((("a", %s),))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3393 d.update((("a", None),)):(<class 'vim.error'>, error("failed to add key 'a' to dictionary",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3394 d.update((("a", {b"": 1}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3395 d.update((("a", {"": 1}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3396 d.update((("a", FailingMapping()),)):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3397 d.update((("a", FailingMappingKey()),)):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3398 d.update((("a", FailingNumber()),)):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3399 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3400 >> DictionaryPopItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3401 d.popitem(1, 2):(<class 'TypeError'>, TypeError('popitem() takes no arguments (2 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3402 >> DictionaryHasKey
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3403 d.has_key():(<class 'TypeError'>, TypeError('has_key() takes exactly one argument (0 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3404 > List
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3405 >> ListConstructor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3406 vim.List(1, 2):(<class 'TypeError'>, TypeError('function takes at most 1 argument (2 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3407 vim.List(a=1):(<class 'TypeError'>, TypeError('list constructor does not accept keyword arguments',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3408 >>> Testing *Iter* using vim.List(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3409 vim.List(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3410 vim.List(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3411 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3412 >>> Testing StringToChars using vim.List([{%s : 1}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3413 vim.List([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3414 vim.List([{b"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3415 vim.List([{"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3416 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3417 >>> Testing StringToChars using vim.List([{"abcF" : {%s : 1}}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3418 vim.List([{"abcF" : {1 : 1}}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3419 vim.List([{"abcF" : {b"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3420 vim.List([{"abcF" : {"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3421 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3422 >>> Testing StringToChars using vim.List([{"abcF" : Mapping({%s : 1})}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3423 vim.List([{"abcF" : Mapping({1 : 1})}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3424 vim.List([{"abcF" : Mapping({b"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3425 vim.List([{"abcF" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3426 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3427 >>> Testing *Iter* using vim.List([{"abcF" : %s}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3428 vim.List([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3429 vim.List([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3430 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3431 >>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3432 vim.List([{"abcF" : None}]):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3433 vim.List([{"abcF" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3434 vim.List([{"abcF" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3435 vim.List([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3436 vim.List([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3437 vim.List([{"abcF" : FailingNumber()}]):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3438 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3439 >>> Testing StringToChars using vim.List([Mapping({%s : 1})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3440 vim.List([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3441 vim.List([Mapping({b"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3442 vim.List([Mapping({"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3443 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3444 >>> Testing StringToChars using vim.List([Mapping({"abcG" : {%s : 1}})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3445 vim.List([Mapping({"abcG" : {1 : 1}})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3446 vim.List([Mapping({"abcG" : {b"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3447 vim.List([Mapping({"abcG" : {"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3448 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3449 >>> Testing StringToChars using vim.List([Mapping({"abcG" : Mapping({%s : 1})})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3450 vim.List([Mapping({"abcG" : Mapping({1 : 1})})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3451 vim.List([Mapping({"abcG" : Mapping({b"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3452 vim.List([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3453 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3454 >>> Testing *Iter* using vim.List([Mapping({"abcG" : %s})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3455 vim.List([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3456 vim.List([Mapping({"abcG" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3457 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3458 >>> Testing ConvertFromPyObject using vim.List([Mapping({"abcG" : %s})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3459 vim.List([Mapping({"abcG" : None})]):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3460 vim.List([Mapping({"abcG" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3461 vim.List([Mapping({"abcG" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3462 vim.List([Mapping({"abcG" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3463 vim.List([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3464 vim.List([Mapping({"abcG" : FailingNumber()})]):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3465 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3466 >>> Testing *Iter* using vim.List([%s])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3467 vim.List([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3468 vim.List([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3469 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3470 >>> Testing ConvertFromPyObject using vim.List([%s])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3471 vim.List([None]):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3472 vim.List([{b"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3473 vim.List([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3474 vim.List([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3475 vim.List([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3476 vim.List([FailingNumber()]):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3477 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3478 >> ListItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3479 l[1000]:(<class 'IndexError'>, IndexError('list index out of range',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3480 >> ListAssItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3481 ll[1] = 2:(<class 'vim.error'>, error('list is locked',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3482 l[1000] = 3:(<class 'IndexError'>, IndexError('list index out of range',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3483 >> ListAssSlice
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3484 ll[1:100] = "abcJ":(<class 'vim.error'>, error('list is locked',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3485 >>> Testing *Iter* using l[:] = %s
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3486 l[:] = FailingIter():(<class 'NotImplementedError'>, NotImplementedError('iter',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3487 l[:] = FailingIterNext():(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3488 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3489 nel[1:10:2] = "abcK":(<class 'ValueError'>, ValueError('attempt to assign sequence of size greater than 2 to extended slice',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3490 (b'a', b'b', b'c', b'O')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3491 nel[1:10:2] = "a":(<class 'ValueError'>, ValueError('attempt to assign sequence of size 1 to extended slice of size 2',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3492 (b'a', b'b', b'c', b'O')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3493 nel[1:1:-1] = "a":(<class 'ValueError'>, ValueError('attempt to assign sequence of size greater than 0 to extended slice',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3494 (b'a', b'b', b'c', b'O')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3495 nel[:] = FailingIterNextN(2):(<class 'NotImplementedError'>, NotImplementedError('next N',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3496 (b'a', b'b', b'c', b'O')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3497 >>> Testing StringToChars using l[:] = [{%s : 1}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3498 l[:] = [{1 : 1}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3499 l[:] = [{b"\0" : 1}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3500 l[:] = [{"\0" : 1}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3501 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3502 >>> Testing StringToChars using l[:] = [{"abcF" : {%s : 1}}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3503 l[:] = [{"abcF" : {1 : 1}}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3504 l[:] = [{"abcF" : {b"\0" : 1}}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3505 l[:] = [{"abcF" : {"\0" : 1}}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3506 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3507 >>> Testing StringToChars using l[:] = [{"abcF" : Mapping({%s : 1})}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3508 l[:] = [{"abcF" : Mapping({1 : 1})}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3509 l[:] = [{"abcF" : Mapping({b"\0" : 1})}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3510 l[:] = [{"abcF" : Mapping({"\0" : 1})}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3511 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3512 >>> Testing *Iter* using l[:] = [{"abcF" : %s}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3513 l[:] = [{"abcF" : FailingIter()}]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3514 l[:] = [{"abcF" : FailingIterNext()}]:(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3515 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3516 >>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3517 l[:] = [{"abcF" : None}]:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3518 l[:] = [{"abcF" : {b"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3519 l[:] = [{"abcF" : {"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3520 l[:] = [{"abcF" : FailingMapping()}]:(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3521 l[:] = [{"abcF" : FailingMappingKey()}]:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3522 l[:] = [{"abcF" : FailingNumber()}]:(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3523 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3524 >>> Testing StringToChars using l[:] = [Mapping({%s : 1})]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3525 l[:] = [Mapping({1 : 1})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3526 l[:] = [Mapping({b"\0" : 1})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3527 l[:] = [Mapping({"\0" : 1})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3528 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3529 >>> Testing StringToChars using l[:] = [Mapping({"abcG" : {%s : 1}})]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3530 l[:] = [Mapping({"abcG" : {1 : 1}})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3531 l[:] = [Mapping({"abcG" : {b"\0" : 1}})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3532 l[:] = [Mapping({"abcG" : {"\0" : 1}})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3533 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3534 >>> Testing StringToChars using l[:] = [Mapping({"abcG" : Mapping({%s : 1})})]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3535 l[:] = [Mapping({"abcG" : Mapping({1 : 1})})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3536 l[:] = [Mapping({"abcG" : Mapping({b"\0" : 1})})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3537 l[:] = [Mapping({"abcG" : Mapping({"\0" : 1})})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3538 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3539 >>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3540 l[:] = [Mapping({"abcG" : FailingIter()})]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3541 l[:] = [Mapping({"abcG" : FailingIterNext()})]:(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3542 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3543 >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3544 l[:] = [Mapping({"abcG" : None})]:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3545 l[:] = [Mapping({"abcG" : {b"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3546 l[:] = [Mapping({"abcG" : {"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3547 l[:] = [Mapping({"abcG" : FailingMapping()})]:(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3548 l[:] = [Mapping({"abcG" : FailingMappingKey()})]:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3549 l[:] = [Mapping({"abcG" : FailingNumber()})]:(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3550 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3551 >>> Testing *Iter* using l[:] = [%s]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3552 l[:] = [FailingIter()]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3553 l[:] = [FailingIterNext()]:(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3554 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3555 >>> Testing ConvertFromPyObject using l[:] = [%s]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3556 l[:] = [None]:NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3557 l[:] = [{b"": 1}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3558 l[:] = [{"": 1}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3559 l[:] = [FailingMapping()]:(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3560 l[:] = [FailingMappingKey()]:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3561 l[:] = [FailingNumber()]:(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3562 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3563 >> ListConcatInPlace
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3564 >>> Testing *Iter* using l.extend(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3565 l.extend(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3566 l.extend(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3567 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3568 >>> Testing StringToChars using l.extend([{%s : 1}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3569 l.extend([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3570 l.extend([{b"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3571 l.extend([{"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3572 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3573 >>> Testing StringToChars using l.extend([{"abcF" : {%s : 1}}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3574 l.extend([{"abcF" : {1 : 1}}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3575 l.extend([{"abcF" : {b"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3576 l.extend([{"abcF" : {"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3577 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3578 >>> Testing StringToChars using l.extend([{"abcF" : Mapping({%s : 1})}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3579 l.extend([{"abcF" : Mapping({1 : 1})}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3580 l.extend([{"abcF" : Mapping({b"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3581 l.extend([{"abcF" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3582 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3583 >>> Testing *Iter* using l.extend([{"abcF" : %s}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3584 l.extend([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3585 l.extend([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3586 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3587 >>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3588 l.extend([{"abcF" : None}]):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3589 l.extend([{"abcF" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3590 l.extend([{"abcF" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3591 l.extend([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3592 l.extend([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3593 l.extend([{"abcF" : FailingNumber()}]):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3594 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3595 >>> Testing StringToChars using l.extend([Mapping({%s : 1})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3596 l.extend([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3597 l.extend([Mapping({b"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3598 l.extend([Mapping({"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3599 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3600 >>> Testing StringToChars using l.extend([Mapping({"abcG" : {%s : 1}})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3601 l.extend([Mapping({"abcG" : {1 : 1}})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3602 l.extend([Mapping({"abcG" : {b"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3603 l.extend([Mapping({"abcG" : {"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3604 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3605 >>> Testing StringToChars using l.extend([Mapping({"abcG" : Mapping({%s : 1})})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3606 l.extend([Mapping({"abcG" : Mapping({1 : 1})})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3607 l.extend([Mapping({"abcG" : Mapping({b"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3608 l.extend([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3609 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3610 >>> Testing *Iter* using l.extend([Mapping({"abcG" : %s})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3611 l.extend([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3612 l.extend([Mapping({"abcG" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3613 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3614 >>> Testing ConvertFromPyObject using l.extend([Mapping({"abcG" : %s})])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3615 l.extend([Mapping({"abcG" : None})]):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3616 l.extend([Mapping({"abcG" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3617 l.extend([Mapping({"abcG" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3618 l.extend([Mapping({"abcG" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3619 l.extend([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3620 l.extend([Mapping({"abcG" : FailingNumber()})]):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3621 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3622 >>> Testing *Iter* using l.extend([%s])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3623 l.extend([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3624 l.extend([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3625 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3626 >>> Testing ConvertFromPyObject using l.extend([%s])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3627 l.extend([None]):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3628 l.extend([{b"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3629 l.extend([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3630 l.extend([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3631 l.extend([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3632 l.extend([FailingNumber()]):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3633 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3634 >> ListSetattr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3635 del l.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.List attributes',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3636 l.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError('bool',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3637 l.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3638 > Function
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3639 >> FunctionConstructor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3640 >>> FunctionConstructor
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3641 vim.Function("123"):(<class 'ValueError'>, ValueError('unnamed function 123 does not exist',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3642 vim.Function("xxx_non_existent_function_xxx"):(<class 'ValueError'>, ValueError('function xxx_non_existent_function_xxx does not exist',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3643 vim.Function("xxx#non#existent#function#xxx"):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3644 vim.Function("xxx_non_existent_function_xxx2", args=[]):(<class 'ValueError'>, ValueError('function xxx_non_existent_function_xxx2 does not exist',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3645 vim.Function("xxx_non_existent_function_xxx3", self={}):(<class 'ValueError'>, ValueError('function xxx_non_existent_function_xxx3 does not exist',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3646 vim.Function("xxx_non_existent_function_xxx4", args=[], self={}):(<class 'ValueError'>, ValueError('function xxx_non_existent_function_xxx4 does not exist',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3647 >>> FunctionNew
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3648 vim.Function("tr", self="abcFuncSelf"):(<class 'AttributeError'>, AttributeError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3649 vim.Function("tr", args=427423):(<class 'TypeError'>, TypeError('unable to convert int to a Vim list',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3650 vim.Function("tr", self="abcFuncSelf2", args="abcFuncArgs2"):(<class 'AttributeError'>, AttributeError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3651 vim.Function(self="abcFuncSelf2", args="abcFuncArgs2"):(<class 'AttributeError'>, AttributeError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3652 vim.Function("tr", "", self="abcFuncSelf2", args="abcFuncArgs2"):(<class 'AttributeError'>, AttributeError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3653 vim.Function("tr", ""):(<class 'TypeError'>, TypeError('function takes exactly 1 argument (2 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3654 >> FunctionCall
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3655 >>> Testing StringToChars using f({%s : 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3656 f({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3657 f({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3658 f({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3659 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3660 >>> Testing StringToChars using f({"abcF" : {%s : 1}})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3661 f({"abcF" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3662 f({"abcF" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3663 f({"abcF" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3664 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3665 >>> Testing StringToChars using f({"abcF" : Mapping({%s : 1})})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3666 f({"abcF" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3667 f({"abcF" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3668 f({"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3669 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3670 >>> Testing *Iter* using f({"abcF" : %s})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3671 f({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3672 f({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3673 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3674 >>> Testing ConvertFromPyObject using f({"abcF" : %s})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3675 f({"abcF" : None}):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3676 f({"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3677 f({"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3678 f({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3679 f({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3680 f({"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3681 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3682 >>> Testing StringToChars using f(Mapping({%s : 1}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3683 f(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3684 f(Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3685 f(Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3686 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3687 >>> Testing StringToChars using f(Mapping({"abcG" : {%s : 1}}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3688 f(Mapping({"abcG" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3689 f(Mapping({"abcG" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3690 f(Mapping({"abcG" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3691 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3692 >>> Testing StringToChars using f(Mapping({"abcG" : Mapping({%s : 1})}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3693 f(Mapping({"abcG" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3694 f(Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3695 f(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3696 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3697 >>> Testing *Iter* using f(Mapping({"abcG" : %s}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3698 f(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3699 f(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3700 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3701 >>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3702 f(Mapping({"abcG" : None})):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3703 f(Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3704 f(Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3705 f(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3706 f(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3707 f(Mapping({"abcG" : FailingNumber()})):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3708 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3709 >>> Testing *Iter* using f(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3710 f(FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3711 f(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3712 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3713 >>> Testing ConvertFromPyObject using f(%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3714 f(None):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3715 f({b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3716 f({"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3717 f(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3718 f(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3719 f(FailingNumber()):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3720 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3721 >>> Testing StringToChars using fd(self={%s : 1})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3722 fd(self={1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3723 fd(self={b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3724 fd(self={"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3725 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3726 >>> Testing StringToChars using fd(self={"abcF" : {%s : 1}})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3727 fd(self={"abcF" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3728 fd(self={"abcF" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3729 fd(self={"abcF" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3730 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3731 >>> Testing StringToChars using fd(self={"abcF" : Mapping({%s : 1})})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3732 fd(self={"abcF" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3733 fd(self={"abcF" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3734 fd(self={"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3735 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3736 >>> Testing *Iter* using fd(self={"abcF" : %s})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3737 fd(self={"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3738 fd(self={"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3739 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3740 >>> Testing ConvertFromPyObject using fd(self={"abcF" : %s})
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3741 fd(self={"abcF" : None}):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3742 fd(self={"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3743 fd(self={"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3744 fd(self={"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3745 fd(self={"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3746 fd(self={"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3747 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3748 >>> Testing StringToChars using fd(self=Mapping({%s : 1}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3749 fd(self=Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3750 fd(self=Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3751 fd(self=Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3752 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3753 >>> Testing StringToChars using fd(self=Mapping({"abcG" : {%s : 1}}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3754 fd(self=Mapping({"abcG" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3755 fd(self=Mapping({"abcG" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3756 fd(self=Mapping({"abcG" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3757 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3758 >>> Testing StringToChars using fd(self=Mapping({"abcG" : Mapping({%s : 1})}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3759 fd(self=Mapping({"abcG" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3760 fd(self=Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3761 fd(self=Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3762 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3763 >>> Testing *Iter* using fd(self=Mapping({"abcG" : %s}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3764 fd(self=Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim structure',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3765 fd(self=Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError('next',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3766 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3767 >>> Testing ConvertFromPyObject using fd(self=Mapping({"abcG" : %s}))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3768 fd(self=Mapping({"abcG" : None})):NOT FAILED
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3769 fd(self=Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3770 fd(self=Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3771 fd(self=Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3772 fd(self=Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3773 fd(self=Mapping({"abcG" : FailingNumber()})):(<class 'NotImplementedError'>, NotImplementedError('int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3774 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3775 >>> Testing *Iter* using fd(self=%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3776 fd(self=FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to a Vim dictionary',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3777 fd(self=FailingIterNext()):(<class 'TypeError'>, TypeError('unable to convert FailingIterNext to a Vim dictionary',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3778 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3779 >>> Testing ConvertFromPyObject using fd(self=%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3780 fd(self=None):(<class 'TypeError'>, TypeError('unable to convert NoneType to a Vim dictionary',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3781 fd(self={b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3782 fd(self={"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3783 fd(self=FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3784 fd(self=FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3785 fd(self=FailingNumber()):(<class 'TypeError'>, TypeError('unable to convert FailingNumber to a Vim dictionary',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3786 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3787 >>> Testing ConvertFromPyMapping using fd(self=%s)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3788 fd(self=[]):(<class 'AttributeError'>, AttributeError('keys',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3789 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3790 > TabPage
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3791 >> TabPageAttr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3792 vim.current.tabpage.xxx:(<class 'AttributeError'>, AttributeError("'vim.tabpage' object has no attribute 'xxx'",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3793 > TabList
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3794 >> TabListItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3795 vim.tabpages[1000]:(<class 'IndexError'>, IndexError('no such tab page',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3796 > Window
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3797 >> WindowAttr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3798 vim.current.window.xxx:(<class 'AttributeError'>, AttributeError("'vim.window' object has no attribute 'xxx'",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3799 >> WindowSetattr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3800 vim.current.window.buffer = 0:(<class 'TypeError'>, TypeError('readonly attribute: buffer',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3801 vim.current.window.cursor = (100000000, 100000000):(<class 'vim.error'>, error('cursor position outside buffer',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3802 vim.current.window.cursor = True:(<class 'TypeError'>, TypeError('argument must be 2-item sequence, not bool',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3803 >>> Testing NumberToLong using vim.current.window.height = %s
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3804 vim.current.window.height = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3805 vim.current.window.height = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3806 vim.current.window.height = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3807 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3808 >>> Testing NumberToLong using vim.current.window.width = %s
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3809 vim.current.window.width = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3810 vim.current.window.width = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3811 vim.current.window.width = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3812 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3813 vim.current.window.xxxxxx = True:(<class 'AttributeError'>, AttributeError('xxxxxx',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3814 > WinList
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3815 >> WinListItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3816 vim.windows[1000]:(<class 'IndexError'>, IndexError('no such window',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3817 > Buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3818 >> StringToLine (indirect)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3819 vim.current.buffer[0] = "\na":(<class 'vim.error'>, error('string cannot contain newlines',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3820 vim.current.buffer[0] = b"\na":(<class 'vim.error'>, error('string cannot contain newlines',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3821 >> SetBufferLine (indirect)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3822 vim.current.buffer[0] = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3823 >> SetBufferLineList (indirect)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3824 vim.current.buffer[:] = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3825 vim.current.buffer[:] = ["\na", "bc"]:(<class 'vim.error'>, error('string cannot contain newlines',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3826 >> InsertBufferLines (indirect)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3827 vim.current.buffer.append(None):(<class 'TypeError'>, TypeError('bad argument type for built-in operation',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3828 vim.current.buffer.append(["\na", "bc"]):(<class 'vim.error'>, error('string cannot contain newlines',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3829 vim.current.buffer.append("\nbc"):(<class 'vim.error'>, error('string cannot contain newlines',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3830 >> RBItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3831 vim.current.buffer[100000000]:(<class 'IndexError'>, IndexError('line number out of range',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3832 >> RBAsItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3833 vim.current.buffer[100000000] = "":(<class 'IndexError'>, IndexError('line number out of range',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3834 >> BufferAttr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3835 vim.current.buffer.xxx:(<class 'AttributeError'>, AttributeError("'vim.buffer' object has no attribute 'xxx'",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3836 >> BufferSetattr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3837 vim.current.buffer.name = True:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got bool',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3838 vim.current.buffer.xxx = True:(<class 'AttributeError'>, AttributeError('xxx',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3839 >> BufferMark
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3840 vim.current.buffer.mark(0):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3841 vim.current.buffer.mark("abcM"):(<class 'ValueError'>, ValueError('mark name must be a single character',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3842 vim.current.buffer.mark("!"):(<class 'vim.error'>, error('invalid mark name',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3843 >> BufferRange
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3844 vim.current.buffer.range(1, 2, 3):(<class 'TypeError'>, TypeError('function takes exactly 2 arguments (3 given)',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3845 > BufMap
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3846 >> BufMapItem
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3847 vim.buffers[100000000]:(<class 'KeyError'>, KeyError(100000000,))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3848 >>> Testing NumberToLong using vim.buffers[%s]
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3849 vim.buffers[[]]:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3850 vim.buffers[None]:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3851 vim.buffers[-1]:(<class 'ValueError'>, ValueError('number must be greater than zero',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3852 vim.buffers[0]:(<class 'ValueError'>, ValueError('number must be greater than zero',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3853 <<< Finished
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3854 > Current
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3855 >> CurrentGetattr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3856 vim.current.xxx:(<class 'AttributeError'>, AttributeError("'vim.currentdata' object has no attribute 'xxx'",))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3857 >> CurrentSetattr
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3858 vim.current.line = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3859 vim.current.buffer = True:(<class 'TypeError'>, TypeError('expected vim.Buffer object, but got bool',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3860 vim.current.window = True:(<class 'TypeError'>, TypeError('expected vim.Window object, but got bool',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3861 vim.current.tabpage = True:(<class 'TypeError'>, TypeError('expected vim.TabPage object, but got bool',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3862 vim.current.xxx = True:(<class 'AttributeError'>, AttributeError('xxx',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3863 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3864
22728
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3865 let actual = getline(2, '$')
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3866 let n_expected = len(expected)
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3867 let n_actual = len(actual)
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3868 call assert_equal(n_expected, n_actual, 'number of lines to compare')
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3869
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3870 " Compare line by line so the errors are easier to understand. Missing lines
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3871 " are compared with an empty string.
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3872 for i in range(n_expected > n_actual ? n_expected : n_actual)
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3873 call assert_equal(i >= n_expected ? '' : expected[i], i >= n_actual ? '' : actual[i])
1928f863ac6e patch 8.2.1912: with Python 3.9 some tests fail
Bram Moolenaar <Bram@vim.org>
parents: 22011
diff changeset
3874 endfor
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3875 close!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3876 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3877
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3878 " Test import
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3879 func Test_python3_import()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3880 new
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3881 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3882
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3883 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3884 sys.path.insert(0, os.path.join(os.getcwd(), 'python_before'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3885 sys.path.append(os.path.join(os.getcwd(), 'python_after'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3886 vim.options['rtp'] = os.getcwd().replace(',', '\\,').replace('\\', '\\\\')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3887 l = []
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3888 def callback(path):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3889 l.append(os.path.relpath(path))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3890 vim.foreach_rtp(callback)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3891 cb.append(repr(l))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3892 del l
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3893 def callback(path):
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3894 return os.path.relpath(path)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3895 cb.append(repr(vim.foreach_rtp(callback)))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3896 del callback
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3897 from module import dir as d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3898 from modulex import ddir
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3899 cb.append(d + ',' + ddir)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3900 import before
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3901 cb.append(before.dir)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3902 import after
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3903 cb.append(after.dir)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3904 import topmodule as tm
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3905 import topmodule.submodule as tms
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3906 import topmodule.submodule.subsubmodule.subsubsubmodule as tmsss
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3907 cb.append(tm.__file__.replace(os.path.sep, '/')[-len('modulex/topmodule/__init__.py'):])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3908 cb.append(tms.__file__.replace(os.path.sep, '/')[-len('modulex/topmodule/submodule/__init__.py'):])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3909 cb.append(tmsss.__file__.replace(os.path.sep, '/')[-len('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3910
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3911 del before
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3912 del after
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3913 del d
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3914 del ddir
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3915 del tm
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3916 del tms
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3917 del tmsss
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3918 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3919
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3920 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3921 ['.']
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3922 '.'
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3923 3,xx
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3924 before
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3925 after
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3926 pythonx/topmodule/__init__.py
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3927 pythonx/topmodule/submodule/__init__.py
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3928 pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3929 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3930 call assert_equal(expected, getline(2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3931 close!
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
3932
23229
b545334ae654 patch 8.2.2160: various typos
Bram Moolenaar <Bram@vim.org>
parents: 22806
diff changeset
3933 " Try to import a non-existing module with a dot (.)
21190
10eb6c38938c patch 8.2.1146: not enough testing for Python
Bram Moolenaar <Bram@vim.org>
parents: 21144
diff changeset
3934 call AssertException(['py3 import a.b.c'], "No module named 'a'")
21144
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3935 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3936
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3937 " Test exceptions
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3938 func Test_python3_exception()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3939 func Exe(e)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3940 execute a:e
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3941 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3942
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3943 new
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3944 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3945
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3946 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3947 Exe = vim.bindeval('function("Exe")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3948 ee('vim.command("throw \'abcN\'")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3949 ee('Exe("throw \'def\'")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3950 ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3951 ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3952 ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3953 ee('vim.eval("xxx_unknown_function_xxx()")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3954 ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3955 del Exe
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3956 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3957 delfunction Exe
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3958
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3959 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3960 vim.command("throw 'abcN'"):(<class 'vim.error'>, error('abcN',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3961 Exe("throw 'def'"):(<class 'vim.error'>, error('def',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3962 vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3963 vim.eval("Exe('echoerr ''jkl''')"):(<class 'vim.error'>, error('Vim(echoerr):jkl',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3964 vim.eval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3965 vim.eval("xxx_unknown_function_xxx()"):(<class 'vim.error'>, error('Vim:E117: Unknown function: xxx_unknown_function_xxx',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3966 vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(<class 'vim.error'>, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3967 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3968 call assert_equal(expected, getline(2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3969 close!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3970 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3971
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3972 " Regression: interrupting vim.command propagates to next vim.command
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3973 func Test_python3_keyboard_interrupt()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3974 new
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3975 py3 cb = vim.current.buffer
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3976 py3 << trim EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3977 def test_keyboard_interrupt():
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3978 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3979 vim.command('while 1 | endwhile')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3980 except KeyboardInterrupt:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3981 cb.append('Caught KeyboardInterrupt')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3982 except Exception:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3983 cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_info()))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3984 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3985 cb.append('!!!!!!!! No exception')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3986 try:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3987 vim.command('$ put =\'Running :put\'')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3988 except KeyboardInterrupt:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3989 cb.append('!!!!!!!! Caught KeyboardInterrupt')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3990 except Exception:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3991 cb.append('!!!!!!!! Caught exception: ' + emsg(sys.exc_info()))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3992 else:
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3993 cb.append('No exception')
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3994 EOF
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3995
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3996 debuggreedy
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3997 call inputsave()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3998 call feedkeys("s\ns\ns\ns\nq\n")
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
3999 redir => output
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4000 debug silent! py3 test_keyboard_interrupt()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4001 redir END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4002 0 debuggreedy
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4003 call inputrestore()
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4004 py3 del test_keyboard_interrupt
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4005
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4006 let expected =<< trim END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4007 Caught KeyboardInterrupt
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4008 Running :put
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4009 No exception
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4010 END
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4011 call assert_equal(expected, getline(2, '$'))
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4012 call assert_equal('', output)
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4013 close!
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4014 endfunc
adae19565eea patch 8.2.1123: Python 3 test is old style
Bram Moolenaar <Bram@vim.org>
parents: 20233
diff changeset
4015
21977
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4016 " Regression: Iterator for a Vim object should hold a reference.
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4017 func Test_python3_iter_ref()
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4018 let g:list_iter_ref_count_increase = -1
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4019 let g:dict_iter_ref_count_increase = -1
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4020 let g:bufmap_iter_ref_count_increase = -1
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4021 let g:options_iter_ref_count_increase = -1
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4022
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4023 py3 << trim EOF
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4024 import sys
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4025 import vim
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4026
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4027 def test_python3_iter_ref():
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4028 create_list = vim.Function('Create_vim_list')
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4029 v = create_list()
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4030 base_ref_count = sys.getrefcount(v)
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4031 for el in v:
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4032 vim.vars['list_iter_ref_count_increase'] = sys.getrefcount(v) - base_ref_count
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4033
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4034 create_dict = vim.Function('Create_vim_dict')
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4035 v = create_dict()
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4036 base_ref_count = sys.getrefcount(v)
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4037 for el in v:
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4038 vim.vars['dict_iter_ref_count_increase'] = sys.getrefcount(v) - base_ref_count
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4039
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4040 v = vim.buffers
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4041 base_ref_count = sys.getrefcount(v)
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4042 for el in v:
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4043 vim.vars['bufmap_iter_ref_count_increase'] = sys.getrefcount(v) - base_ref_count
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4044
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4045 v = vim.options
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4046 base_ref_count = sys.getrefcount(v)
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4047 for el in v:
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4048 vim.vars['options_iter_ref_count_increase'] = sys.getrefcount(v) - base_ref_count
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4049
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4050 test_python3_iter_ref()
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4051 EOF
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4052
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4053 call assert_equal(1, g:list_iter_ref_count_increase)
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4054 call assert_equal(1, g:dict_iter_ref_count_increase)
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4055 call assert_equal(1, g:bufmap_iter_ref_count_increase)
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4056 call assert_equal(1, g:options_iter_ref_count_increase)
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4057 endfunc
d1a7088c6efe patch 8.2.1538: Python: iteration over vim objects fails to keep reference
Bram Moolenaar <Bram@vim.org>
parents: 21265
diff changeset
4058
23264
f9526a3c9bbf patch 8.2.2178: Python 3: non-utf8 character cannot be handled
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
4059 func Test_python3_non_utf8_string()
f9526a3c9bbf patch 8.2.2178: Python 3: non-utf8 character cannot be handled
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
4060 smap <Esc>@ <A-@>
f9526a3c9bbf patch 8.2.2178: Python 3: non-utf8 character cannot be handled
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
4061 py3 vim.command('redir => _tmp_smaps | smap | redir END')
f9526a3c9bbf patch 8.2.2178: Python 3: non-utf8 character cannot be handled
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
4062 py3 vim.eval('_tmp_smaps').splitlines()
f9526a3c9bbf patch 8.2.2178: Python 3: non-utf8 character cannot be handled
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
4063 sunmap <Esc>@
f9526a3c9bbf patch 8.2.2178: Python 3: non-utf8 character cannot be handled
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
4064 endfunc
f9526a3c9bbf patch 8.2.2178: Python 3: non-utf8 character cannot be handled
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
4065
23456
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4066 func Test_python3_fold_hidden_buffer()
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4067 CheckFeature folding
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4068
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4069 set fdm=expr fde=Fde(v:lnum)
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4070 let b:regex = '^'
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4071 func Fde(lnum)
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4072 let ld = [{}]
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4073 let lines = bufnr('%')->getbufline(1, '$')
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4074 let was_import = 0
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4075 for lnum in range(1, len(lines))
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4076 let line = lines[lnum]
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4077 call add(ld, {'a': b:regex})
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4078 let ld[lnum].foldexpr = was_import ? 1 : '>1'
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4079 let was_import = 1
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4080 endfor
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4081 return ld[a:lnum].foldexpr
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4082 endfunc
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4083
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4084 call setline(1, repeat([''], 15) + repeat(['from'], 3))
30592
457ea0570b6f patch 9.0.0631: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
4085 eval repeat(['x'], 17)->writefile('Xa.txt', 'D')
23456
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4086 split Xa.txt
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4087 py3 import vim
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4088 py3 b = vim.current.buffer
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4089 py3 aaa = b[:]
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4090 hide
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4091 py3 b[:] = aaa
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4092
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4093 set fdm& fde&
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4094 delfunc Fde
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4095 bwipe! Xa.txt
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4096 endfunc
f6514ca9f45e patch 8.2.2271: ml_get error when changing hidden buffer in Python
Bram Moolenaar <Bram@vim.org>
parents: 23283
diff changeset
4097
28950
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4098 " Test to catch regression fix #10437.
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4099 func Test_python3_hidden_buf_mod_does_not_mess_up_display()
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4100 CheckRunVimInTerminal
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4101
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4102 let testfile = 'Xtest.vim'
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4103 let lines =<< trim END
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4104 set hidden number
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4105 new
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4106 hide
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4107 sil call setline(1, repeat(['aaa'], &lines) + ['bbbbbb'])
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4108 fu Func()
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4109 python3 << EOF
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4110 import vim
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4111 b = vim.buffers[2]
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4112 b[:] = ['', '']
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4113 EOF
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4114 endfu
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4115 norm! Gzb
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4116 call feedkeys(":call Func()\r", 'n')
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4117 END
30592
457ea0570b6f patch 9.0.0631: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
4118 call writefile(lines, testfile, 'D')
28950
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4119
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4120 let rows = 10
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4121 let bufnr = term_start([GetVimProg(), '--clean', '-S', testfile], {'term_rows': rows})
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4122 call TermWait(bufnr, 100)
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4123 call assert_equal('run', job_status(term_getjob(bufnr)))
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4124 let g:test_is_flaky = 0
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4125 call WaitForAssert({-> assert_match('^ 3 aaa$', term_getline(bufnr, 1))})
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4126 call WaitForAssert({-> assert_match('^ 11 bbbbbb$', term_getline(bufnr, rows - 1))})
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4127
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4128 call term_sendkeys(bufnr, ":qall!\<CR>")
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4129 call WaitForAssert({-> assert_equal('dead', job_status(term_getjob(bufnr)))})
30592
457ea0570b6f patch 9.0.0631: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents: 30310
diff changeset
4130
28950
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4131 exe bufnr . 'bwipe!'
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4132 endfunc
44481ae7c7ce patch 8.2.4997: Python: changing hidden buffer can cause display mess up
Bram Moolenaar <Bram@vim.org>
parents: 26211
diff changeset
4133
19991
f27473034f26 patch 8.2.0551: not all code for options is tested
Bram Moolenaar <Bram@vim.org>
parents: 19499
diff changeset
4134 " vim: shiftwidth=2 sts=2 expandtab