0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

updated for version 7.3.1236

Problem:    Python: WindowSetattr() missing support for NUMBER_UNSIGNED.
Solution:   Add NUMBER_UNSIGNED, add more tests. Various fixes. (ZyX)
This commit is contained in:
Bram Moolenaar
2013-06-23 16:35:47 +02:00
parent ede3e6383d
commit dee2e315d7
14 changed files with 549 additions and 225 deletions

View File

@@ -1611,7 +1611,7 @@ DictionaryContains(DictionaryObject *self, PyObject *keyObject)
ret = (rObj == Py_True); ret = (rObj == Py_True);
Py_DECREF(Py_True); Py_DECREF(rObj);
return ret; return ret;
} }
@@ -1910,7 +1910,7 @@ DictionaryUpdate(DictionaryObject *self, PyObject *args, PyObject *kwargs)
PyErr_FORMAT(PyExc_ValueError, PyErr_FORMAT(PyExc_ValueError,
N_("expected sequence element of size 2, " N_("expected sequence element of size 2, "
"but got sequence of size %d"), "but got sequence of size %d"),
PySequence_Fast_GET_SIZE(fast)); (int) PySequence_Fast_GET_SIZE(fast));
return NULL; return NULL;
} }
@@ -2435,6 +2435,10 @@ ListAssSlice(ListObject *self, Py_ssize_t first, Py_ssize_t last, PyObject *obj)
clear_tv(&v); clear_tv(&v);
} }
Py_DECREF(iterator); Py_DECREF(iterator);
if (PyErr_Occurred())
return -1;
return 0; return 0;
} }
@@ -3361,7 +3365,7 @@ WindowSetattr(WindowObject *self, char *name, PyObject *valObject)
long height; long height;
win_T *savewin; win_T *savewin;
if (NumberToLong(valObject, &height, NUMBER_INT)) if (NumberToLong(valObject, &height, NUMBER_INT|NUMBER_UNSIGNED))
return -1; return -1;
#ifdef FEAT_GUI #ifdef FEAT_GUI
@@ -3384,7 +3388,7 @@ WindowSetattr(WindowObject *self, char *name, PyObject *valObject)
long width; long width;
win_T *savewin; win_T *savewin;
if (NumberToLong(valObject, &width, NUMBER_INT)) if (NumberToLong(valObject, &width, NUMBER_INT|NUMBER_UNSIGNED))
return -1; return -1;
#ifdef FEAT_GUI #ifdef FEAT_GUI
@@ -3518,7 +3522,7 @@ StringToLine(PyObject *obj)
char *str; char *str;
char *save; char *save;
PyObject *bytes = NULL; PyObject *bytes = NULL;
Py_ssize_t len; Py_ssize_t len = 0;
PyInt i; PyInt i;
char *p; char *p;
@@ -5483,6 +5487,7 @@ _ConvertFromPyObject(PyObject *obj, typval_T *tv, PyObject *lookup_dict)
#endif #endif
else if (PyObject_HasAttrString(obj, "keys")) else if (PyObject_HasAttrString(obj, "keys"))
return convert_dl(obj, tv, pymap_to_tv, lookup_dict); return convert_dl(obj, tv, pymap_to_tv, lookup_dict);
/* PyObject_GetIter can create built-in iterator for any sequence object */
else if (PyIter_Check(obj) || PySequence_Check(obj)) else if (PyIter_Check(obj) || PySequence_Check(obj))
return convert_dl(obj, tv, pyseq_to_tv, lookup_dict); return convert_dl(obj, tv, pyseq_to_tv, lookup_dict);
else if (PyMapping_Check(obj)) else if (PyMapping_Check(obj))
@@ -5930,11 +5935,8 @@ static struct object_constant {
{"_Loader", (PyObject *)&LoaderType}, {"_Loader", (PyObject *)&LoaderType},
}; };
typedef int (*object_adder)(PyObject *, const char *, PyObject *);
typedef PyObject *(*attr_getter)(PyObject *, const char *);
#define ADD_OBJECT(m, name, obj) \ #define ADD_OBJECT(m, name, obj) \
if (add_object(m, name, obj)) \ if (PyModule_AddObject(m, name, obj)) \
return -1; return -1;
#define ADD_CHECKED_OBJECT(m, name, obj) \ #define ADD_CHECKED_OBJECT(m, name, obj) \
@@ -5946,7 +5948,7 @@ typedef PyObject *(*attr_getter)(PyObject *, const char *);
} }
static int static int
populate_module(PyObject *m, object_adder add_object, attr_getter get_attr) populate_module(PyObject *m)
{ {
int i; int i;
PyObject *other_module; PyObject *other_module;
@@ -5990,7 +5992,7 @@ populate_module(PyObject *m, object_adder add_object, attr_getter get_attr)
if (!(py_chdir = PyObject_GetAttrString(other_module, "chdir"))) if (!(py_chdir = PyObject_GetAttrString(other_module, "chdir")))
return -1; return -1;
ADD_OBJECT(m, "_chdir", py_chdir); ADD_OBJECT(m, "_chdir", py_chdir);
if (!(attr = get_attr(m, "chdir"))) if (!(attr = PyObject_GetAttrString(m, "chdir")))
return -1; return -1;
if (PyObject_SetAttrString(other_module, "chdir", attr)) if (PyObject_SetAttrString(other_module, "chdir", attr))
{ {
@@ -6002,7 +6004,7 @@ populate_module(PyObject *m, object_adder add_object, attr_getter get_attr)
if ((py_fchdir = PyObject_GetAttrString(other_module, "fchdir"))) if ((py_fchdir = PyObject_GetAttrString(other_module, "fchdir")))
{ {
ADD_OBJECT(m, "_fchdir", py_fchdir); ADD_OBJECT(m, "_fchdir", py_fchdir);
if (!(attr = get_attr(m, "fchdir"))) if (!(attr = PyObject_GetAttrString(m, "fchdir")))
return -1; return -1;
if (PyObject_SetAttrString(other_module, "fchdir", attr)) if (PyObject_SetAttrString(other_module, "fchdir", attr))
{ {

View File

@@ -1404,8 +1404,7 @@ PythonMod_Init(void)
vim_module = Py_InitModule4("vim", VimMethods, (char *)NULL, vim_module = Py_InitModule4("vim", VimMethods, (char *)NULL,
(PyObject *)NULL, PYTHON_API_VERSION); (PyObject *)NULL, PYTHON_API_VERSION);
if (populate_module(vim_module, PyModule_AddObject, if (populate_module(vim_module))
PyObject_GetAttrString))
return -1; return -1;
if (init_sys_path()) if (init_sys_path())

View File

@@ -1623,7 +1623,7 @@ Py3Init_vim(void)
if ((vim_module = PyModule_Create(&vimmodule)) == NULL) if ((vim_module = PyModule_Create(&vimmodule)) == NULL)
return NULL; return NULL;
if (populate_module(vim_module, PyModule_AddObject, PyObject_GetAttrString)) if (populate_module(vim_module))
return NULL; return NULL;
if (init_sys_path()) if (init_sys_path())

View File

@@ -0,0 +1 @@
raise NotImplementedError

View File

@@ -0,0 +1 @@
raise ImportError

View File

@@ -0,0 +1 @@
#

View File

@@ -0,0 +1 @@
#

View File

@@ -0,0 +1 @@
#

View File

@@ -216,6 +216,7 @@ EOF
:let messages=[] :let messages=[]
:delfunction DictNew :delfunction DictNew
py <<EOF py <<EOF
import sys
d=vim.bindeval('{}') d=vim.bindeval('{}')
m=vim.bindeval('messages') m=vim.bindeval('messages')
def em(expr, g=globals(), l=locals()): def em(expr, g=globals(), l=locals()):
@@ -297,7 +298,7 @@ EOF
:" threading :" threading
:let l = [0] :let l = [0]
:py l=vim.bindeval('l') :py l=vim.bindeval('l')
:py <<EOF py <<EOF
import threading import threading
import time import time
@@ -327,7 +328,7 @@ EOF
:" settrace :" settrace
:let l = [] :let l = []
:py l=vim.bindeval('l') :py l=vim.bindeval('l')
:py <<EOF py <<EOF
import sys import sys
def traceit(frame, event, arg): def traceit(frame, event, arg):
@@ -342,9 +343,9 @@ def trace_main():
EOF EOF
:py sys.settrace(traceit) :py sys.settrace(traceit)
:py trace_main() :py trace_main()
:py sys.settrace(None)
:py del traceit :py del traceit
:py del trace_main :py del trace_main
:py sys.settrace(None)
:$put =string(l) :$put =string(l)
:" :"
:" Slice :" Slice
@@ -880,10 +881,16 @@ def ee(expr, g=globals(), l=locals()):
if expr.find('None') > -1: if expr.find('None') > -1:
msg = msg.replace('TypeError:(\'iteration over non-sequence\',)', msg = msg.replace('TypeError:(\'iteration over non-sequence\',)',
'TypeError:("\'NoneType\' object is not iterable",)') 'TypeError:("\'NoneType\' object is not iterable",)')
if expr.find('FailingNumber') > -1:
msg = msg.replace(', not \'FailingNumber\'', '').replace('"', '\'')
msg = msg.replace('TypeError:(\'iteration over non-sequence\',)',
'TypeError:("\'FailingNumber\' object is not iterable",)')
if msg.find('(\'\'') > -1 or msg.find('(\'can\'t') > -1:
msg = msg.replace('(\'', '("').replace('\',)', '",)')
if expr == 'fd(self=[])': if expr == 'fd(self=[])':
# HACK: PyMapping_Check changed meaning # HACK: PyMapping_Check changed meaning
msg = msg.replace('AttributeError:(\'keys\',)', msg = msg.replace('AttributeError:(\'keys\',)',
'TypeError:(\'unable to convert object to vim dictionary\',)') 'TypeError:(\'unable to convert list to vim dictionary\',)')
cb.append(expr + ':' + msg) cb.append(expr + ':' + msg)
else: else:
cb.append(expr + ':NOT FAILED') cb.append(expr + ':NOT FAILED')
@@ -942,6 +949,7 @@ def convertfrompyobject_test(expr, recurse=True):
'{u"": 1}', # Same, but with unicode object '{u"": 1}', # Same, but with unicode object
'FailingMapping()', # 'FailingMapping()', #
'FailingMappingKey()', # 'FailingMappingKey()', #
'FailingNumber()', #
)) ))
def convertfrompymapping_test(expr): def convertfrompymapping_test(expr):
@@ -956,66 +964,104 @@ def iter_test(expr):
'FailingIterNext()', 'FailingIterNext()',
)) ))
def number_test(expr, natural=False, unsigned=False):
if natural:
unsigned = True
return subexpr_test(expr, 'NumberToLong', (
'[]',
'None',
) + (unsigned and ('-1',) or ())
+ (natural and ('0',) or ()))
class FailingTrue(object): class FailingTrue(object):
def __nonzero__(self): def __nonzero__(self):
raise NotImplementedError raise NotImplementedError('bool')
class FailingIter(object): class FailingIter(object):
def __iter__(self): def __iter__(self):
raise NotImplementedError raise NotImplementedError('iter')
class FailingIterNext(object): class FailingIterNext(object):
def __iter__(self): def __iter__(self):
return self return self
def next(self): def next(self):
raise NotImplementedError raise NotImplementedError('next')
class FailingMappingKey(object): class FailingMappingKey(object):
def __getitem__(self, item): def __getitem__(self, item):
raise NotImplementedError raise NotImplementedError('getitem:mappingkey')
def keys(self): def keys(self):
return list("abcH") return list("abcH")
class FailingMapping(object): class FailingMapping(object):
def __getitem__(self): def __getitem__(self):
raise NotImplementedError raise NotImplementedError('getitem:mapping')
def keys(self): def keys(self):
raise NotImplementedError raise NotImplementedError('keys')
class FailingList(list): class FailingList(list):
def __getitem__(self, idx): def __getitem__(self, idx):
if i == 2: if i == 2:
raise NotImplementedError raise NotImplementedError('getitem:list')
else: else:
return super(FailingList, self).__getitem__(idx) return super(FailingList, self).__getitem__(idx)
class NoArgsCall(object):
def __call__(self):
pass
class FailingCall(object):
def __call__(self, path):
raise NotImplementedError('call')
class FailingNumber(object):
def __int__(self):
raise NotImplementedError('int')
cb.append("> Output") cb.append("> Output")
cb.append(">> OutputSetattr") cb.append(">> OutputSetattr")
ee('del sys.stdout.softspace') ee('del sys.stdout.softspace')
ee('sys.stdout.softspace = []') number_test('sys.stdout.softspace = %s', unsigned=True)
number_test('sys.stderr.softspace = %s', unsigned=True)
ee('sys.stdout.attr = None') ee('sys.stdout.attr = None')
cb.append(">> OutputWrite") cb.append(">> OutputWrite")
ee('sys.stdout.write(None)') ee('sys.stdout.write(None)')
cb.append(">> OutputWriteLines") cb.append(">> OutputWriteLines")
ee('sys.stdout.writelines(None)') ee('sys.stdout.writelines(None)')
ee('sys.stdout.writelines([1])') ee('sys.stdout.writelines([1])')
#iter_test('sys.stdout.writelines(%s)') iter_test('sys.stdout.writelines(%s)')
cb.append("> VimCommand") cb.append("> VimCommand")
ee('vim.command(1)') stringtochars_test('vim.command(%s)')
ee('vim.command("", 2)')
#! Not checked: vim->python exceptions translating: checked later #! Not checked: vim->python exceptions translating: checked later
cb.append("> VimToPython") cb.append("> VimToPython")
#! Not checked: everything: needs errors in internal python functions #! Not checked: everything: needs errors in internal python functions
cb.append("> VimEval") cb.append("> VimEval")
ee('vim.eval(1)') stringtochars_test('vim.eval(%s)')
ee('vim.eval("", FailingTrue())')
#! Not checked: everything: needs errors in internal python functions #! Not checked: everything: needs errors in internal python functions
cb.append("> VimEvalPy") cb.append("> VimEvalPy")
ee('vim.bindeval(1)') stringtochars_test('vim.bindeval(%s)')
ee('vim.eval("", 2)')
#! Not checked: vim->python exceptions translating: checked later #! Not checked: vim->python exceptions translating: checked later
cb.append("> VimStrwidth") cb.append("> VimStrwidth")
ee('vim.strwidth(1)') stringtochars_test('vim.strwidth(%s)')
cb.append("> VimForeachRTP")
ee('vim.foreach_rtp(None)')
ee('vim.foreach_rtp(NoArgsCall())')
ee('vim.foreach_rtp(FailingCall())')
ee('vim.foreach_rtp(int, 2)')
cb.append('> import')
old_rtp = vim.options['rtp']
vim.options['rtp'] = os.getcwd().replace(',', '\\,').replace('\\', '\\\\')
ee('import xxx_no_such_module_xxx')
ee('import failing_import')
ee('import failing')
vim.options['rtp'] = old_rtp
del old_rtp
cb.append("> Dictionary") cb.append("> Dictionary")
cb.append(">> DictionaryConstructor") cb.append(">> DictionaryConstructor")
ee('vim.Dictionary("abcI")') ee('vim.Dictionary("abcI")')
@@ -1043,7 +1089,7 @@ cb.append(">>> kwargs")
cb.append(">>> iter") cb.append(">>> iter")
ee('d.update(FailingMapping())') ee('d.update(FailingMapping())')
ee('d.update([FailingIterNext()])') ee('d.update([FailingIterNext()])')
#iter_test('d.update(%s)') iter_test('d.update(%s)')
convertfrompyobject_test('d.update(%s)') convertfrompyobject_test('d.update(%s)')
stringtochars_test('d.update(((%s, 0),))') stringtochars_test('d.update(((%s, 0),))')
convertfrompyobject_test('d.update((("a", %s),))') convertfrompyobject_test('d.update((("a", %s),))')
@@ -1055,7 +1101,7 @@ cb.append("> List")
cb.append(">> ListConstructor") cb.append(">> ListConstructor")
ee('vim.List(1, 2)') ee('vim.List(1, 2)')
ee('vim.List(a=1)') ee('vim.List(a=1)')
#iter_test('vim.List(%s)') iter_test('vim.List(%s)')
convertfrompyobject_test('vim.List([%s])') convertfrompyobject_test('vim.List([%s])')
cb.append(">> ListItem") cb.append(">> ListItem")
ee('l[1000]') ee('l[1000]')
@@ -1064,10 +1110,10 @@ ee('ll[1] = 2')
ee('l[1000] = 3') ee('l[1000] = 3')
cb.append(">> ListAssSlice") cb.append(">> ListAssSlice")
ee('ll[1:100] = "abcJ"') ee('ll[1:100] = "abcJ"')
#iter_test('l[:] = %s') iter_test('l[:] = %s')
convertfrompyobject_test('l[:] = [%s]') convertfrompyobject_test('l[:] = [%s]')
cb.append(">> ListConcatInPlace") cb.append(">> ListConcatInPlace")
#iter_test('l.extend(%s)') iter_test('l.extend(%s)')
convertfrompyobject_test('l.extend([%s])') convertfrompyobject_test('l.extend([%s])')
cb.append(">> ListSetattr") cb.append(">> ListSetattr")
ee('del l.locked') ee('del l.locked')
@@ -1094,14 +1140,15 @@ cb.append(">> WindowSetattr")
ee('vim.current.window.buffer = 0') ee('vim.current.window.buffer = 0')
ee('vim.current.window.cursor = (100000000, 100000000)') ee('vim.current.window.cursor = (100000000, 100000000)')
ee('vim.current.window.cursor = True') ee('vim.current.window.cursor = True')
ee('vim.current.window.height = "abcK"') number_test('vim.current.window.height = %s', unsigned=True)
ee('vim.current.window.width = "abcL"') number_test('vim.current.window.width = %s', unsigned=True)
ee('vim.current.window.xxxxxx = True') ee('vim.current.window.xxxxxx = True')
cb.append("> WinList") cb.append("> WinList")
cb.append(">> WinListItem") cb.append(">> WinListItem")
ee('vim.windows[1000]') ee('vim.windows[1000]')
cb.append("> Buffer") cb.append("> Buffer")
cb.append(">> StringToLine (indirect)") cb.append(">> StringToLine (indirect)")
ee('vim.current.buffer[0] = u"\\na"')
ee('vim.current.buffer[0] = "\\na"') ee('vim.current.buffer[0] = "\\na"')
cb.append(">> SetBufferLine (indirect)") cb.append(">> SetBufferLine (indirect)")
ee('vim.current.buffer[0] = True') ee('vim.current.buffer[0] = True')
@@ -1129,8 +1176,8 @@ cb.append(">> BufferRange")
ee('vim.current.buffer.range(1, 2, 3)') ee('vim.current.buffer.range(1, 2, 3)')
cb.append("> BufMap") cb.append("> BufMap")
cb.append(">> BufMapItem") cb.append(">> BufMapItem")
ee('vim.buffers[None]')
ee('vim.buffers[100000000]') ee('vim.buffers[100000000]')
number_test('vim.buffers[%s]', natural=True)
cb.append("> Current") cb.append("> Current")
cb.append(">> CurrentGetattr") cb.append(">> CurrentGetattr")
ee('vim.current.xxx') ee('vim.current.xxx')
@@ -1154,12 +1201,16 @@ del Mapping
del convertfrompyobject_test del convertfrompyobject_test
del convertfrompymapping_test del convertfrompymapping_test
del iter_test del iter_test
del number_test
del FailingTrue del FailingTrue
del FailingIter del FailingIter
del FailingIterNext del FailingIterNext
del FailingMapping del FailingMapping
del FailingMappingKey del FailingMappingKey
del FailingList del FailingList
del NoArgsCall
del FailingCall
del FailingNumber
EOF EOF
:delfunction F :delfunction F
:" :"
@@ -1168,6 +1219,16 @@ py << EOF
sys.path.insert(0, os.path.join(os.getcwd(), 'python_before')) sys.path.insert(0, os.path.join(os.getcwd(), 'python_before'))
sys.path.append(os.path.join(os.getcwd(), 'python_after')) sys.path.append(os.path.join(os.getcwd(), 'python_after'))
vim.options['rtp'] = os.getcwd().replace(',', '\\,').replace('\\', '\\\\') vim.options['rtp'] = os.getcwd().replace(',', '\\,').replace('\\', '\\\\')
l = []
def callback(path):
l.append(path[-len('/testdir'):])
vim.foreach_rtp(callback)
cb.append(repr(l))
del l
def callback(path):
return path[-len('/testdir'):]
cb.append(repr(vim.foreach_rtp(callback)))
del callback
from module import dir as d from module import dir as d
from modulex import ddir from modulex import ddir
cb.append(d + ',' + ddir) cb.append(d + ',' + ddir)
@@ -1175,10 +1236,19 @@ import before
cb.append(before.dir) cb.append(before.dir)
import after import after
cb.append(after.dir) cb.append(after.dir)
import topmodule as tm
import topmodule.submodule as tms
import topmodule.submodule.subsubmodule.subsubsubmodule as tmsss
cb.append(tm.__file__.replace('.pyc', '.py')[-len('modulex/topmodule/__init__.py'):])
cb.append(tms.__file__.replace('.pyc', '.py')[-len('modulex/topmodule/submodule/__init__.py'):])
cb.append(tmsss.__file__.replace('.pyc', '.py')[-len('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])
del before del before
del after del after
del d del d
del ddir del ddir
del tm
del tms
del tmsss
EOF EOF
:" :"
:" Test exceptions :" Test exceptions
@@ -1232,6 +1302,7 @@ EOF
:call garbagecollect(1) :call garbagecollect(1)
:" :"
:/^start:/,$wq! test.out :/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:call getchar() :call getchar()
ENDTEST ENDTEST

View File

@@ -441,28 +441,69 @@ test86.in
> Output > Output
>> OutputSetattr >> OutputSetattr
del sys.stdout.softspace:AttributeError:("can't delete OutputObject attributes",) del sys.stdout.softspace:AttributeError:("can't delete OutputObject attributes",)
>>> Testing NumberToLong using sys.stdout.softspace = %s
sys.stdout.softspace = []:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',) sys.stdout.softspace = []:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',)
sys.stdout.softspace = None:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',)
sys.stdout.softspace = -1:ValueError:('number must be greater or equal to zero',)
<<< Finished
>>> Testing NumberToLong using sys.stderr.softspace = %s
sys.stderr.softspace = []:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',)
sys.stderr.softspace = None:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',)
sys.stderr.softspace = -1:ValueError:('number must be greater or equal to zero',)
<<< Finished
sys.stdout.attr = None:AttributeError:('invalid attribute: attr',) sys.stdout.attr = None:AttributeError:('invalid attribute: attr',)
>> OutputWrite >> OutputWrite
sys.stdout.write(None):TypeError:('coercing to Unicode: need string or buffer, NoneType found',) sys.stdout.write(None):TypeError:('coercing to Unicode: need string or buffer, NoneType found',)
>> OutputWriteLines >> OutputWriteLines
sys.stdout.writelines(None):TypeError:("'NoneType' object is not iterable",) sys.stdout.writelines(None):TypeError:("'NoneType' object is not iterable",)
sys.stdout.writelines([1]):TypeError:('coercing to Unicode: need string or buffer, int found',) sys.stdout.writelines([1]):TypeError:('coercing to Unicode: need string or buffer, int found',)
>>> Testing *Iter* using sys.stdout.writelines(%s)
sys.stdout.writelines(FailingIter()):NotImplementedError:('iter',)
sys.stdout.writelines(FailingIterNext()):NotImplementedError:('next',)
<<< Finished
> VimCommand > VimCommand
>>> Testing StringToChars using vim.command(%s)
vim.command(1):TypeError:('expected str() or unicode() instance, but got int',) vim.command(1):TypeError:('expected str() or unicode() instance, but got int',)
vim.command(u"\0"):TypeError:('expected string without null bytes',)
vim.command("\0"):TypeError:('expected string without null bytes',)
<<< Finished
vim.command("", 2):TypeError:('command() takes exactly one argument (2 given)',)
> VimToPython > VimToPython
> VimEval > VimEval
>>> Testing StringToChars using vim.eval(%s)
vim.eval(1):TypeError:('expected str() or unicode() instance, but got int',) vim.eval(1):TypeError:('expected str() or unicode() instance, but got int',)
vim.eval(u"\0"):TypeError:('expected string without null bytes',)
vim.eval("\0"):TypeError:('expected string without null bytes',)
<<< Finished
vim.eval("", FailingTrue()):TypeError:('function takes exactly 1 argument (2 given)',)
> VimEvalPy > VimEvalPy
>>> Testing StringToChars using vim.bindeval(%s)
vim.bindeval(1):TypeError:('expected str() or unicode() instance, but got int',) vim.bindeval(1):TypeError:('expected str() or unicode() instance, but got int',)
vim.bindeval(u"\0"):TypeError:('expected string without null bytes',)
vim.bindeval("\0"):TypeError:('expected string without null bytes',)
<<< Finished
vim.eval("", 2):TypeError:('function takes exactly 1 argument (2 given)',)
> VimStrwidth > VimStrwidth
>>> Testing StringToChars using vim.strwidth(%s)
vim.strwidth(1):TypeError:('expected str() or unicode() instance, but got int',) vim.strwidth(1):TypeError:('expected str() or unicode() instance, but got int',)
vim.strwidth(u"\0"):TypeError:('expected string without null bytes',)
vim.strwidth("\0"):TypeError:('expected string without null bytes',)
<<< Finished
> VimForeachRTP
vim.foreach_rtp(None):TypeError:("'NoneType' object is not callable",)
vim.foreach_rtp(NoArgsCall()):TypeError:('__call__() takes exactly 1 argument (2 given)',)
vim.foreach_rtp(FailingCall()):NotImplementedError:('call',)
vim.foreach_rtp(int, 2):TypeError:('foreach_rtp() takes exactly one argument (2 given)',)
> import
import xxx_no_such_module_xxx:ImportError:('No module named xxx_no_such_module_xxx',)
import failing_import:ImportError:('No module named failing_import',)
import failing:ImportError:('No module named failing',)
> Dictionary > Dictionary
>> DictionaryConstructor >> DictionaryConstructor
vim.Dictionary("abcI"):ValueError:('expected sequence element of size 2, but got sequence of size 1',) vim.Dictionary("abcI"):ValueError:('expected sequence element of size 2, but got sequence of size 1',)
>> DictionarySetattr >> DictionarySetattr
del d.locked:AttributeError:('cannot delete vim.Dictionary attributes',) del d.locked:AttributeError:('cannot delete vim.Dictionary attributes',)
d.locked = FailingTrue():NotImplementedError:() d.locked = FailingTrue():NotImplementedError:('bool',)
vim.vvars.locked = False:TypeError:('cannot modify fixed dictionary',) vim.vvars.locked = False:TypeError:('cannot modify fixed dictionary',)
d.scope = True:AttributeError:('cannot set attribute scope',) d.scope = True:AttributeError:('cannot set attribute scope',)
d.xxx = True:AttributeError:('cannot set attribute xxx',) d.xxx = True:AttributeError:('cannot set attribute xxx',)
@@ -501,14 +542,15 @@ d["a"] = {"abcF" : Mapping({"\0" : 1})}:TypeError:('expected string without null
<<< Finished <<< Finished
>>> Testing *Iter* using d["a"] = {"abcF" : %s} >>> Testing *Iter* using d["a"] = {"abcF" : %s}
d["a"] = {"abcF" : FailingIter()}:TypeError:('unable to convert FailingIter to vim structure',) d["a"] = {"abcF" : FailingIter()}:TypeError:('unable to convert FailingIter to vim structure',)
d["a"] = {"abcF" : FailingIterNext()}:NotImplementedError:() d["a"] = {"abcF" : FailingIterNext()}:NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s} >>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s}
d["a"] = {"abcF" : None}:TypeError:('unable to convert NoneType to vim structure',) d["a"] = {"abcF" : None}:TypeError:('unable to convert NoneType to vim structure',)
d["a"] = {"abcF" : {"": 1}}:ValueError:('empty keys are not allowed',) d["a"] = {"abcF" : {"": 1}}:ValueError:('empty keys are not allowed',)
d["a"] = {"abcF" : {u"": 1}}:ValueError:('empty keys are not allowed',) d["a"] = {"abcF" : {u"": 1}}:ValueError:('empty keys are not allowed',)
d["a"] = {"abcF" : FailingMapping()}:NotImplementedError:() d["a"] = {"abcF" : FailingMapping()}:NotImplementedError:('keys',)
d["a"] = {"abcF" : FailingMappingKey()}:NotImplementedError:() d["a"] = {"abcF" : FailingMappingKey()}:NotImplementedError:('getitem:mappingkey',)
d["a"] = {"abcF" : FailingNumber()}:TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing StringToChars using d["a"] = Mapping({%s : 1}) >>> Testing StringToChars using d["a"] = Mapping({%s : 1})
d["a"] = Mapping({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) d["a"] = Mapping({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',)
@@ -527,31 +569,37 @@ d["a"] = Mapping({"abcG" : Mapping({"\0" : 1})}):TypeError:('expected string wit
<<< Finished <<< Finished
>>> Testing *Iter* using d["a"] = Mapping({"abcG" : %s}) >>> Testing *Iter* using d["a"] = Mapping({"abcG" : %s})
d["a"] = Mapping({"abcG" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) d["a"] = Mapping({"abcG" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
d["a"] = Mapping({"abcG" : FailingIterNext()}):NotImplementedError:() d["a"] = Mapping({"abcG" : FailingIterNext()}):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d["a"] = Mapping({"abcG" : %s}) >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abcG" : %s})
d["a"] = Mapping({"abcG" : None}):TypeError:('unable to convert NoneType to vim structure',) d["a"] = Mapping({"abcG" : None}):TypeError:('unable to convert NoneType to vim structure',)
d["a"] = Mapping({"abcG" : {"": 1}}):ValueError:('empty keys are not allowed',) d["a"] = Mapping({"abcG" : {"": 1}}):ValueError:('empty keys are not allowed',)
d["a"] = Mapping({"abcG" : {u"": 1}}):ValueError:('empty keys are not allowed',) d["a"] = Mapping({"abcG" : {u"": 1}}):ValueError:('empty keys are not allowed',)
d["a"] = Mapping({"abcG" : FailingMapping()}):NotImplementedError:() d["a"] = Mapping({"abcG" : FailingMapping()}):NotImplementedError:('keys',)
d["a"] = Mapping({"abcG" : FailingMappingKey()}):NotImplementedError:() d["a"] = Mapping({"abcG" : FailingMappingKey()}):NotImplementedError:('getitem:mappingkey',)
d["a"] = Mapping({"abcG" : FailingNumber()}):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing *Iter* using d["a"] = %s >>> Testing *Iter* using d["a"] = %s
d["a"] = FailingIter():TypeError:('unable to convert FailingIter to vim structure',) d["a"] = FailingIter():TypeError:('unable to convert FailingIter to vim structure',)
d["a"] = FailingIterNext():NotImplementedError:() d["a"] = FailingIterNext():NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d["a"] = %s >>> Testing ConvertFromPyObject using d["a"] = %s
d["a"] = None:TypeError:('unable to convert NoneType to vim structure',) d["a"] = None:TypeError:('unable to convert NoneType to vim structure',)
d["a"] = {"": 1}:ValueError:('empty keys are not allowed',) d["a"] = {"": 1}:ValueError:('empty keys are not allowed',)
d["a"] = {u"": 1}:ValueError:('empty keys are not allowed',) d["a"] = {u"": 1}:ValueError:('empty keys are not allowed',)
d["a"] = FailingMapping():NotImplementedError:() d["a"] = FailingMapping():NotImplementedError:('keys',)
d["a"] = FailingMappingKey():NotImplementedError:() d["a"] = FailingMappingKey():NotImplementedError:('getitem:mappingkey',)
d["a"] = FailingNumber():TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>> DictionaryUpdate >> DictionaryUpdate
>>> kwargs >>> kwargs
>>> iter >>> iter
d.update(FailingMapping()):NotImplementedError:() d.update(FailingMapping()):NotImplementedError:('keys',)
d.update([FailingIterNext()]):NotImplementedError:() d.update([FailingIterNext()]):NotImplementedError:('next',)
>>> Testing *Iter* using d.update(%s)
d.update(FailingIter()):NotImplementedError:('iter',)
d.update(FailingIterNext()):NotImplementedError:('next',)
<<< Finished
>>> Testing StringToChars using d.update({%s : 1}) >>> Testing StringToChars using d.update({%s : 1})
d.update({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) d.update({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',)
d.update({u"\0" : 1}):TypeError:('expected string without null bytes',) d.update({u"\0" : 1}):TypeError:('expected string without null bytes',)
@@ -569,14 +617,15 @@ d.update({"abcF" : Mapping({"\0" : 1})}):TypeError:('expected string without nul
<<< Finished <<< Finished
>>> Testing *Iter* using d.update({"abcF" : %s}) >>> Testing *Iter* using d.update({"abcF" : %s})
d.update({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) d.update({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
d.update({"abcF" : FailingIterNext()}):NotImplementedError:() d.update({"abcF" : FailingIterNext()}):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update({"abcF" : %s}) >>> Testing ConvertFromPyObject using d.update({"abcF" : %s})
d.update({"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',) d.update({"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',)
d.update({"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',) d.update({"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',)
d.update({"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',) d.update({"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',)
d.update({"abcF" : FailingMapping()}):NotImplementedError:() d.update({"abcF" : FailingMapping()}):NotImplementedError:('keys',)
d.update({"abcF" : FailingMappingKey()}):NotImplementedError:() d.update({"abcF" : FailingMappingKey()}):NotImplementedError:('getitem:mappingkey',)
d.update({"abcF" : FailingNumber()}):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing StringToChars using d.update(Mapping({%s : 1})) >>> Testing StringToChars using d.update(Mapping({%s : 1}))
d.update(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) d.update(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',)
@@ -595,25 +644,27 @@ d.update(Mapping({"abcG" : Mapping({"\0" : 1})})):TypeError:('expected string wi
<<< Finished <<< Finished
>>> Testing *Iter* using d.update(Mapping({"abcG" : %s})) >>> Testing *Iter* using d.update(Mapping({"abcG" : %s}))
d.update(Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',) d.update(Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',)
d.update(Mapping({"abcG" : FailingIterNext()})):NotImplementedError:() d.update(Mapping({"abcG" : FailingIterNext()})):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update(Mapping({"abcG" : %s})) >>> Testing ConvertFromPyObject using d.update(Mapping({"abcG" : %s}))
d.update(Mapping({"abcG" : None})):TypeError:('unable to convert NoneType to vim structure',) d.update(Mapping({"abcG" : None})):TypeError:('unable to convert NoneType to vim structure',)
d.update(Mapping({"abcG" : {"": 1}})):ValueError:('empty keys are not allowed',) d.update(Mapping({"abcG" : {"": 1}})):ValueError:('empty keys are not allowed',)
d.update(Mapping({"abcG" : {u"": 1}})):ValueError:('empty keys are not allowed',) d.update(Mapping({"abcG" : {u"": 1}})):ValueError:('empty keys are not allowed',)
d.update(Mapping({"abcG" : FailingMapping()})):NotImplementedError:() d.update(Mapping({"abcG" : FailingMapping()})):NotImplementedError:('keys',)
d.update(Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:() d.update(Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:('getitem:mappingkey',)
d.update(Mapping({"abcG" : FailingNumber()})):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing *Iter* using d.update(%s) >>> Testing *Iter* using d.update(%s)
d.update(FailingIter()):NotImplementedError:() d.update(FailingIter()):NotImplementedError:('iter',)
d.update(FailingIterNext()):NotImplementedError:() d.update(FailingIterNext()):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update(%s) >>> Testing ConvertFromPyObject using d.update(%s)
d.update(None):TypeError:("'NoneType' object is not iterable",) d.update(None):TypeError:("'NoneType' object is not iterable",)
d.update({"": 1}):ValueError:('empty keys are not allowed',) d.update({"": 1}):ValueError:('empty keys are not allowed',)
d.update({u"": 1}):ValueError:('empty keys are not allowed',) d.update({u"": 1}):ValueError:('empty keys are not allowed',)
d.update(FailingMapping()):NotImplementedError:() d.update(FailingMapping()):NotImplementedError:('keys',)
d.update(FailingMappingKey()):NotImplementedError:() d.update(FailingMappingKey()):NotImplementedError:('getitem:mappingkey',)
d.update(FailingNumber()):TypeError:("'FailingNumber' object is not iterable",)
<<< Finished <<< Finished
>>> Testing StringToChars using d.update(((%s, 0),)) >>> Testing StringToChars using d.update(((%s, 0),))
d.update(((1, 0),)):TypeError:('expected str() or unicode() instance, but got int',) d.update(((1, 0),)):TypeError:('expected str() or unicode() instance, but got int',)
@@ -637,14 +688,15 @@ d.update((("a", {"abcF" : Mapping({"\0" : 1})}),)):TypeError:('expected string w
<<< Finished <<< Finished
>>> Testing *Iter* using d.update((("a", {"abcF" : %s}),)) >>> Testing *Iter* using d.update((("a", {"abcF" : %s}),))
d.update((("a", {"abcF" : FailingIter()}),)):TypeError:('unable to convert FailingIter to vim structure',) d.update((("a", {"abcF" : FailingIter()}),)):TypeError:('unable to convert FailingIter to vim structure',)
d.update((("a", {"abcF" : FailingIterNext()}),)):NotImplementedError:() d.update((("a", {"abcF" : FailingIterNext()}),)):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update((("a", {"abcF" : %s}),)) >>> Testing ConvertFromPyObject using d.update((("a", {"abcF" : %s}),))
d.update((("a", {"abcF" : None}),)):TypeError:('unable to convert NoneType to vim structure',) d.update((("a", {"abcF" : None}),)):TypeError:('unable to convert NoneType to vim structure',)
d.update((("a", {"abcF" : {"": 1}}),)):ValueError:('empty keys are not allowed',) d.update((("a", {"abcF" : {"": 1}}),)):ValueError:('empty keys are not allowed',)
d.update((("a", {"abcF" : {u"": 1}}),)):ValueError:('empty keys are not allowed',) d.update((("a", {"abcF" : {u"": 1}}),)):ValueError:('empty keys are not allowed',)
d.update((("a", {"abcF" : FailingMapping()}),)):NotImplementedError:() d.update((("a", {"abcF" : FailingMapping()}),)):NotImplementedError:('keys',)
d.update((("a", {"abcF" : FailingMappingKey()}),)):NotImplementedError:() d.update((("a", {"abcF" : FailingMappingKey()}),)):NotImplementedError:('getitem:mappingkey',)
d.update((("a", {"abcF" : FailingNumber()}),)):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),)) >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),))
d.update((("a", Mapping({1 : 1})),)):TypeError:('expected str() or unicode() instance, but got int',) d.update((("a", Mapping({1 : 1})),)):TypeError:('expected str() or unicode() instance, but got int',)
@@ -663,25 +715,27 @@ d.update((("a", Mapping({"abcG" : Mapping({"\0" : 1})})),)):TypeError:('expected
<<< Finished <<< Finished
>>> Testing *Iter* using d.update((("a", Mapping({"abcG" : %s})),)) >>> Testing *Iter* using d.update((("a", Mapping({"abcG" : %s})),))
d.update((("a", Mapping({"abcG" : FailingIter()})),)):TypeError:('unable to convert FailingIter to vim structure',) d.update((("a", Mapping({"abcG" : FailingIter()})),)):TypeError:('unable to convert FailingIter to vim structure',)
d.update((("a", Mapping({"abcG" : FailingIterNext()})),)):NotImplementedError:() d.update((("a", Mapping({"abcG" : FailingIterNext()})),)):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abcG" : %s})),)) >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abcG" : %s})),))
d.update((("a", Mapping({"abcG" : None})),)):TypeError:('unable to convert NoneType to vim structure',) d.update((("a", Mapping({"abcG" : None})),)):TypeError:('unable to convert NoneType to vim structure',)
d.update((("a", Mapping({"abcG" : {"": 1}})),)):ValueError:('empty keys are not allowed',) d.update((("a", Mapping({"abcG" : {"": 1}})),)):ValueError:('empty keys are not allowed',)
d.update((("a", Mapping({"abcG" : {u"": 1}})),)):ValueError:('empty keys are not allowed',) d.update((("a", Mapping({"abcG" : {u"": 1}})),)):ValueError:('empty keys are not allowed',)
d.update((("a", Mapping({"abcG" : FailingMapping()})),)):NotImplementedError:() d.update((("a", Mapping({"abcG" : FailingMapping()})),)):NotImplementedError:('keys',)
d.update((("a", Mapping({"abcG" : FailingMappingKey()})),)):NotImplementedError:() d.update((("a", Mapping({"abcG" : FailingMappingKey()})),)):NotImplementedError:('getitem:mappingkey',)
d.update((("a", Mapping({"abcG" : FailingNumber()})),)):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing *Iter* using d.update((("a", %s),)) >>> Testing *Iter* using d.update((("a", %s),))
d.update((("a", FailingIter()),)):TypeError:('unable to convert FailingIter to vim structure',) d.update((("a", FailingIter()),)):TypeError:('unable to convert FailingIter to vim structure',)
d.update((("a", FailingIterNext()),)):NotImplementedError:() d.update((("a", FailingIterNext()),)):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update((("a", %s),)) >>> Testing ConvertFromPyObject using d.update((("a", %s),))
d.update((("a", None),)):TypeError:('unable to convert NoneType to vim structure',) d.update((("a", None),)):TypeError:('unable to convert NoneType to vim structure',)
d.update((("a", {"": 1}),)):ValueError:('empty keys are not allowed',) d.update((("a", {"": 1}),)):ValueError:('empty keys are not allowed',)
d.update((("a", {u"": 1}),)):ValueError:('empty keys are not allowed',) d.update((("a", {u"": 1}),)):ValueError:('empty keys are not allowed',)
d.update((("a", FailingMapping()),)):NotImplementedError:() d.update((("a", FailingMapping()),)):NotImplementedError:('keys',)
d.update((("a", FailingMappingKey()),)):NotImplementedError:() d.update((("a", FailingMappingKey()),)):NotImplementedError:('getitem:mappingkey',)
d.update((("a", FailingNumber()),)):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>> DictionaryPopItem >> DictionaryPopItem
d.popitem(1, 2):TypeError:('popitem() takes no arguments (2 given)',) d.popitem(1, 2):TypeError:('popitem() takes no arguments (2 given)',)
@@ -691,6 +745,10 @@ d.has_key():TypeError:('has_key() takes exactly one argument (0 given)',)
>> ListConstructor >> ListConstructor
vim.List(1, 2):TypeError:('function takes at most 1 argument (2 given)',) vim.List(1, 2):TypeError:('function takes at most 1 argument (2 given)',)
vim.List(a=1):TypeError:('list constructor does not accept keyword arguments',) vim.List(a=1):TypeError:('list constructor does not accept keyword arguments',)
>>> Testing *Iter* using vim.List(%s)
vim.List(FailingIter()):NotImplementedError:('iter',)
vim.List(FailingIterNext()):NotImplementedError:('next',)
<<< Finished
>>> Testing StringToChars using vim.List([{%s : 1}]) >>> Testing StringToChars using vim.List([{%s : 1}])
vim.List([{1 : 1}]):TypeError:('expected str() or unicode() instance, but got int',) vim.List([{1 : 1}]):TypeError:('expected str() or unicode() instance, but got int',)
vim.List([{u"\0" : 1}]):TypeError:('expected string without null bytes',) vim.List([{u"\0" : 1}]):TypeError:('expected string without null bytes',)
@@ -708,14 +766,15 @@ vim.List([{"abcF" : Mapping({"\0" : 1})}]):TypeError:('expected string without n
<<< Finished <<< Finished
>>> Testing *Iter* using vim.List([{"abcF" : %s}]) >>> Testing *Iter* using vim.List([{"abcF" : %s}])
vim.List([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',) vim.List([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',)
vim.List([{"abcF" : FailingIterNext()}]):NotImplementedError:() vim.List([{"abcF" : FailingIterNext()}]):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}]) >>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}])
vim.List([{"abcF" : None}]):TypeError:('unable to convert NoneType to vim structure',) vim.List([{"abcF" : None}]):TypeError:('unable to convert NoneType to vim structure',)
vim.List([{"abcF" : {"": 1}}]):ValueError:('empty keys are not allowed',) vim.List([{"abcF" : {"": 1}}]):ValueError:('empty keys are not allowed',)
vim.List([{"abcF" : {u"": 1}}]):ValueError:('empty keys are not allowed',) vim.List([{"abcF" : {u"": 1}}]):ValueError:('empty keys are not allowed',)
vim.List([{"abcF" : FailingMapping()}]):NotImplementedError:() vim.List([{"abcF" : FailingMapping()}]):NotImplementedError:('keys',)
vim.List([{"abcF" : FailingMappingKey()}]):NotImplementedError:() vim.List([{"abcF" : FailingMappingKey()}]):NotImplementedError:('getitem:mappingkey',)
vim.List([{"abcF" : FailingNumber()}]):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing StringToChars using vim.List([Mapping({%s : 1})]) >>> Testing StringToChars using vim.List([Mapping({%s : 1})])
vim.List([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',) vim.List([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',)
@@ -734,25 +793,27 @@ vim.List([Mapping({"abcG" : Mapping({"\0" : 1})})]):TypeError:('expected string
<<< Finished <<< Finished
>>> Testing *Iter* using vim.List([Mapping({"abcG" : %s})]) >>> Testing *Iter* using vim.List([Mapping({"abcG" : %s})])
vim.List([Mapping({"abcG" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',) vim.List([Mapping({"abcG" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',)
vim.List([Mapping({"abcG" : FailingIterNext()})]):NotImplementedError:() vim.List([Mapping({"abcG" : FailingIterNext()})]):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using vim.List([Mapping({"abcG" : %s})]) >>> Testing ConvertFromPyObject using vim.List([Mapping({"abcG" : %s})])
vim.List([Mapping({"abcG" : None})]):TypeError:('unable to convert NoneType to vim structure',) vim.List([Mapping({"abcG" : None})]):TypeError:('unable to convert NoneType to vim structure',)
vim.List([Mapping({"abcG" : {"": 1}})]):ValueError:('empty keys are not allowed',) vim.List([Mapping({"abcG" : {"": 1}})]):ValueError:('empty keys are not allowed',)
vim.List([Mapping({"abcG" : {u"": 1}})]):ValueError:('empty keys are not allowed',) vim.List([Mapping({"abcG" : {u"": 1}})]):ValueError:('empty keys are not allowed',)
vim.List([Mapping({"abcG" : FailingMapping()})]):NotImplementedError:() vim.List([Mapping({"abcG" : FailingMapping()})]):NotImplementedError:('keys',)
vim.List([Mapping({"abcG" : FailingMappingKey()})]):NotImplementedError:() vim.List([Mapping({"abcG" : FailingMappingKey()})]):NotImplementedError:('getitem:mappingkey',)
vim.List([Mapping({"abcG" : FailingNumber()})]):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing *Iter* using vim.List([%s]) >>> Testing *Iter* using vim.List([%s])
vim.List([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',) vim.List([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',)
vim.List([FailingIterNext()]):NotImplementedError:() vim.List([FailingIterNext()]):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using vim.List([%s]) >>> Testing ConvertFromPyObject using vim.List([%s])
vim.List([None]):TypeError:('unable to convert NoneType to vim structure',) vim.List([None]):TypeError:('unable to convert NoneType to vim structure',)
vim.List([{"": 1}]):ValueError:('empty keys are not allowed',) vim.List([{"": 1}]):ValueError:('empty keys are not allowed',)
vim.List([{u"": 1}]):ValueError:('empty keys are not allowed',) vim.List([{u"": 1}]):ValueError:('empty keys are not allowed',)
vim.List([FailingMapping()]):NotImplementedError:() vim.List([FailingMapping()]):NotImplementedError:('keys',)
vim.List([FailingMappingKey()]):NotImplementedError:() vim.List([FailingMappingKey()]):NotImplementedError:('getitem:mappingkey',)
vim.List([FailingNumber()]):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>> ListItem >> ListItem
l[1000]:IndexError:('list index out of range',) l[1000]:IndexError:('list index out of range',)
@@ -761,6 +822,10 @@ ll[1] = 2:error:('list is locked',)
l[1000] = 3:IndexError:('list index out of range',) l[1000] = 3:IndexError:('list index out of range',)
>> ListAssSlice >> ListAssSlice
ll[1:100] = "abcJ":error:('list is locked',) ll[1:100] = "abcJ":error:('list is locked',)
>>> Testing *Iter* using l[:] = %s
l[:] = FailingIter():NotImplementedError:('iter',)
l[:] = FailingIterNext():NotImplementedError:('next',)
<<< Finished
>>> Testing StringToChars using l[:] = [{%s : 1}] >>> Testing StringToChars using l[:] = [{%s : 1}]
l[:] = [{1 : 1}]:TypeError:('expected str() or unicode() instance, but got int',) l[:] = [{1 : 1}]:TypeError:('expected str() or unicode() instance, but got int',)
l[:] = [{u"\0" : 1}]:TypeError:('expected string without null bytes',) l[:] = [{u"\0" : 1}]:TypeError:('expected string without null bytes',)
@@ -778,14 +843,15 @@ l[:] = [{"abcF" : Mapping({"\0" : 1})}]:TypeError:('expected string without null
<<< Finished <<< Finished
>>> Testing *Iter* using l[:] = [{"abcF" : %s}] >>> Testing *Iter* using l[:] = [{"abcF" : %s}]
l[:] = [{"abcF" : FailingIter()}]:TypeError:('unable to convert FailingIter to vim structure',) l[:] = [{"abcF" : FailingIter()}]:TypeError:('unable to convert FailingIter to vim structure',)
l[:] = [{"abcF" : FailingIterNext()}]:NotImplementedError:() l[:] = [{"abcF" : FailingIterNext()}]:NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}] >>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}]
l[:] = [{"abcF" : None}]:TypeError:('unable to convert NoneType to vim structure',) l[:] = [{"abcF" : None}]:TypeError:('unable to convert NoneType to vim structure',)
l[:] = [{"abcF" : {"": 1}}]:ValueError:('empty keys are not allowed',) l[:] = [{"abcF" : {"": 1}}]:ValueError:('empty keys are not allowed',)
l[:] = [{"abcF" : {u"": 1}}]:ValueError:('empty keys are not allowed',) l[:] = [{"abcF" : {u"": 1}}]:ValueError:('empty keys are not allowed',)
l[:] = [{"abcF" : FailingMapping()}]:NotImplementedError:() l[:] = [{"abcF" : FailingMapping()}]:NotImplementedError:('keys',)
l[:] = [{"abcF" : FailingMappingKey()}]:NotImplementedError:() l[:] = [{"abcF" : FailingMappingKey()}]:NotImplementedError:('getitem:mappingkey',)
l[:] = [{"abcF" : FailingNumber()}]:TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing StringToChars using l[:] = [Mapping({%s : 1})] >>> Testing StringToChars using l[:] = [Mapping({%s : 1})]
l[:] = [Mapping({1 : 1})]:TypeError:('expected str() or unicode() instance, but got int',) l[:] = [Mapping({1 : 1})]:TypeError:('expected str() or unicode() instance, but got int',)
@@ -804,27 +870,33 @@ l[:] = [Mapping({"abcG" : Mapping({"\0" : 1})})]:TypeError:('expected string wit
<<< Finished <<< Finished
>>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})] >>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})]
l[:] = [Mapping({"abcG" : FailingIter()})]:TypeError:('unable to convert FailingIter to vim structure',) l[:] = [Mapping({"abcG" : FailingIter()})]:TypeError:('unable to convert FailingIter to vim structure',)
l[:] = [Mapping({"abcG" : FailingIterNext()})]:NotImplementedError:() l[:] = [Mapping({"abcG" : FailingIterNext()})]:NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})] >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})]
l[:] = [Mapping({"abcG" : None})]:TypeError:('unable to convert NoneType to vim structure',) l[:] = [Mapping({"abcG" : None})]:TypeError:('unable to convert NoneType to vim structure',)
l[:] = [Mapping({"abcG" : {"": 1}})]:ValueError:('empty keys are not allowed',) l[:] = [Mapping({"abcG" : {"": 1}})]:ValueError:('empty keys are not allowed',)
l[:] = [Mapping({"abcG" : {u"": 1}})]:ValueError:('empty keys are not allowed',) l[:] = [Mapping({"abcG" : {u"": 1}})]:ValueError:('empty keys are not allowed',)
l[:] = [Mapping({"abcG" : FailingMapping()})]:NotImplementedError:() l[:] = [Mapping({"abcG" : FailingMapping()})]:NotImplementedError:('keys',)
l[:] = [Mapping({"abcG" : FailingMappingKey()})]:NotImplementedError:() l[:] = [Mapping({"abcG" : FailingMappingKey()})]:NotImplementedError:('getitem:mappingkey',)
l[:] = [Mapping({"abcG" : FailingNumber()})]:TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing *Iter* using l[:] = [%s] >>> Testing *Iter* using l[:] = [%s]
l[:] = [FailingIter()]:TypeError:('unable to convert FailingIter to vim structure',) l[:] = [FailingIter()]:TypeError:('unable to convert FailingIter to vim structure',)
l[:] = [FailingIterNext()]:NotImplementedError:() l[:] = [FailingIterNext()]:NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l[:] = [%s] >>> Testing ConvertFromPyObject using l[:] = [%s]
l[:] = [None]:TypeError:('unable to convert NoneType to vim structure',) l[:] = [None]:TypeError:('unable to convert NoneType to vim structure',)
l[:] = [{"": 1}]:ValueError:('empty keys are not allowed',) l[:] = [{"": 1}]:ValueError:('empty keys are not allowed',)
l[:] = [{u"": 1}]:ValueError:('empty keys are not allowed',) l[:] = [{u"": 1}]:ValueError:('empty keys are not allowed',)
l[:] = [FailingMapping()]:NotImplementedError:() l[:] = [FailingMapping()]:NotImplementedError:('keys',)
l[:] = [FailingMappingKey()]:NotImplementedError:() l[:] = [FailingMappingKey()]:NotImplementedError:('getitem:mappingkey',)
l[:] = [FailingNumber()]:TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>> ListConcatInPlace >> ListConcatInPlace
>>> Testing *Iter* using l.extend(%s)
l.extend(FailingIter()):NotImplementedError:('iter',)
l.extend(FailingIterNext()):NotImplementedError:('next',)
<<< Finished
>>> Testing StringToChars using l.extend([{%s : 1}]) >>> Testing StringToChars using l.extend([{%s : 1}])
l.extend([{1 : 1}]):TypeError:('expected str() or unicode() instance, but got int',) l.extend([{1 : 1}]):TypeError:('expected str() or unicode() instance, but got int',)
l.extend([{u"\0" : 1}]):TypeError:('expected string without null bytes',) l.extend([{u"\0" : 1}]):TypeError:('expected string without null bytes',)
@@ -842,14 +914,15 @@ l.extend([{"abcF" : Mapping({"\0" : 1})}]):TypeError:('expected string without n
<<< Finished <<< Finished
>>> Testing *Iter* using l.extend([{"abcF" : %s}]) >>> Testing *Iter* using l.extend([{"abcF" : %s}])
l.extend([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',) l.extend([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',)
l.extend([{"abcF" : FailingIterNext()}]):NotImplementedError:() l.extend([{"abcF" : FailingIterNext()}]):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}]) >>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}])
l.extend([{"abcF" : None}]):TypeError:('unable to convert NoneType to vim structure',) l.extend([{"abcF" : None}]):TypeError:('unable to convert NoneType to vim structure',)
l.extend([{"abcF" : {"": 1}}]):ValueError:('empty keys are not allowed',) l.extend([{"abcF" : {"": 1}}]):ValueError:('empty keys are not allowed',)
l.extend([{"abcF" : {u"": 1}}]):ValueError:('empty keys are not allowed',) l.extend([{"abcF" : {u"": 1}}]):ValueError:('empty keys are not allowed',)
l.extend([{"abcF" : FailingMapping()}]):NotImplementedError:() l.extend([{"abcF" : FailingMapping()}]):NotImplementedError:('keys',)
l.extend([{"abcF" : FailingMappingKey()}]):NotImplementedError:() l.extend([{"abcF" : FailingMappingKey()}]):NotImplementedError:('getitem:mappingkey',)
l.extend([{"abcF" : FailingNumber()}]):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing StringToChars using l.extend([Mapping({%s : 1})]) >>> Testing StringToChars using l.extend([Mapping({%s : 1})])
l.extend([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',) l.extend([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',)
@@ -868,29 +941,31 @@ l.extend([Mapping({"abcG" : Mapping({"\0" : 1})})]):TypeError:('expected string
<<< Finished <<< Finished
>>> Testing *Iter* using l.extend([Mapping({"abcG" : %s})]) >>> Testing *Iter* using l.extend([Mapping({"abcG" : %s})])
l.extend([Mapping({"abcG" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',) l.extend([Mapping({"abcG" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',)
l.extend([Mapping({"abcG" : FailingIterNext()})]):NotImplementedError:() l.extend([Mapping({"abcG" : FailingIterNext()})]):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l.extend([Mapping({"abcG" : %s})]) >>> Testing ConvertFromPyObject using l.extend([Mapping({"abcG" : %s})])
l.extend([Mapping({"abcG" : None})]):TypeError:('unable to convert NoneType to vim structure',) l.extend([Mapping({"abcG" : None})]):TypeError:('unable to convert NoneType to vim structure',)
l.extend([Mapping({"abcG" : {"": 1}})]):ValueError:('empty keys are not allowed',) l.extend([Mapping({"abcG" : {"": 1}})]):ValueError:('empty keys are not allowed',)
l.extend([Mapping({"abcG" : {u"": 1}})]):ValueError:('empty keys are not allowed',) l.extend([Mapping({"abcG" : {u"": 1}})]):ValueError:('empty keys are not allowed',)
l.extend([Mapping({"abcG" : FailingMapping()})]):NotImplementedError:() l.extend([Mapping({"abcG" : FailingMapping()})]):NotImplementedError:('keys',)
l.extend([Mapping({"abcG" : FailingMappingKey()})]):NotImplementedError:() l.extend([Mapping({"abcG" : FailingMappingKey()})]):NotImplementedError:('getitem:mappingkey',)
l.extend([Mapping({"abcG" : FailingNumber()})]):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing *Iter* using l.extend([%s]) >>> Testing *Iter* using l.extend([%s])
l.extend([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',) l.extend([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',)
l.extend([FailingIterNext()]):NotImplementedError:() l.extend([FailingIterNext()]):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l.extend([%s]) >>> Testing ConvertFromPyObject using l.extend([%s])
l.extend([None]):TypeError:('unable to convert NoneType to vim structure',) l.extend([None]):TypeError:('unable to convert NoneType to vim structure',)
l.extend([{"": 1}]):ValueError:('empty keys are not allowed',) l.extend([{"": 1}]):ValueError:('empty keys are not allowed',)
l.extend([{u"": 1}]):ValueError:('empty keys are not allowed',) l.extend([{u"": 1}]):ValueError:('empty keys are not allowed',)
l.extend([FailingMapping()]):NotImplementedError:() l.extend([FailingMapping()]):NotImplementedError:('keys',)
l.extend([FailingMappingKey()]):NotImplementedError:() l.extend([FailingMappingKey()]):NotImplementedError:('getitem:mappingkey',)
l.extend([FailingNumber()]):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>> ListSetattr >> ListSetattr
del l.locked:AttributeError:('cannot delete vim.List attributes',) del l.locked:AttributeError:('cannot delete vim.List attributes',)
l.locked = FailingTrue():NotImplementedError:() l.locked = FailingTrue():NotImplementedError:('bool',)
l.xxx = True:AttributeError:('cannot set attribute xxx',) l.xxx = True:AttributeError:('cannot set attribute xxx',)
> Function > Function
>> FunctionConstructor >> FunctionConstructor
@@ -915,14 +990,15 @@ f({"abcF" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes
<<< Finished <<< Finished
>>> Testing *Iter* using f({"abcF" : %s}) >>> Testing *Iter* using f({"abcF" : %s})
f({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) f({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
f({"abcF" : FailingIterNext()}):NotImplementedError:() f({"abcF" : FailingIterNext()}):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using f({"abcF" : %s}) >>> Testing ConvertFromPyObject using f({"abcF" : %s})
f({"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',) f({"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',)
f({"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',) f({"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',)
f({"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',) f({"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',)
f({"abcF" : FailingMapping()}):NotImplementedError:() f({"abcF" : FailingMapping()}):NotImplementedError:('keys',)
f({"abcF" : FailingMappingKey()}):NotImplementedError:() f({"abcF" : FailingMappingKey()}):NotImplementedError:('getitem:mappingkey',)
f({"abcF" : FailingNumber()}):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing StringToChars using f(Mapping({%s : 1})) >>> Testing StringToChars using f(Mapping({%s : 1}))
f(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) f(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',)
@@ -941,25 +1017,27 @@ f(Mapping({"abcG" : Mapping({"\0" : 1})})):TypeError:('expected string without n
<<< Finished <<< Finished
>>> Testing *Iter* using f(Mapping({"abcG" : %s})) >>> Testing *Iter* using f(Mapping({"abcG" : %s}))
f(Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',) f(Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',)
f(Mapping({"abcG" : FailingIterNext()})):NotImplementedError:() f(Mapping({"abcG" : FailingIterNext()})):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s})) >>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s}))
f(Mapping({"abcG" : None})):TypeError:('unable to convert NoneType to vim structure',) f(Mapping({"abcG" : None})):TypeError:('unable to convert NoneType to vim structure',)
f(Mapping({"abcG" : {"": 1}})):ValueError:('empty keys are not allowed',) f(Mapping({"abcG" : {"": 1}})):ValueError:('empty keys are not allowed',)
f(Mapping({"abcG" : {u"": 1}})):ValueError:('empty keys are not allowed',) f(Mapping({"abcG" : {u"": 1}})):ValueError:('empty keys are not allowed',)
f(Mapping({"abcG" : FailingMapping()})):NotImplementedError:() f(Mapping({"abcG" : FailingMapping()})):NotImplementedError:('keys',)
f(Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:() f(Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:('getitem:mappingkey',)
f(Mapping({"abcG" : FailingNumber()})):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing *Iter* using f(%s) >>> Testing *Iter* using f(%s)
f(FailingIter()):TypeError:('unable to convert FailingIter to vim structure',) f(FailingIter()):TypeError:('unable to convert FailingIter to vim structure',)
f(FailingIterNext()):NotImplementedError:() f(FailingIterNext()):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using f(%s) >>> Testing ConvertFromPyObject using f(%s)
f(None):TypeError:('unable to convert NoneType to vim structure',) f(None):TypeError:('unable to convert NoneType to vim structure',)
f({"": 1}):ValueError:('empty keys are not allowed',) f({"": 1}):ValueError:('empty keys are not allowed',)
f({u"": 1}):ValueError:('empty keys are not allowed',) f({u"": 1}):ValueError:('empty keys are not allowed',)
f(FailingMapping()):NotImplementedError:() f(FailingMapping()):NotImplementedError:('keys',)
f(FailingMappingKey()):NotImplementedError:() f(FailingMappingKey()):NotImplementedError:('getitem:mappingkey',)
f(FailingNumber()):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing StringToChars using fd(self={%s : 1}) >>> Testing StringToChars using fd(self={%s : 1})
fd(self={1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) fd(self={1 : 1}):TypeError:('expected str() or unicode() instance, but got int',)
@@ -978,14 +1056,15 @@ fd(self={"abcF" : Mapping({"\0" : 1})}):TypeError:('expected string without null
<<< Finished <<< Finished
>>> Testing *Iter* using fd(self={"abcF" : %s}) >>> Testing *Iter* using fd(self={"abcF" : %s})
fd(self={"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) fd(self={"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
fd(self={"abcF" : FailingIterNext()}):NotImplementedError:() fd(self={"abcF" : FailingIterNext()}):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using fd(self={"abcF" : %s}) >>> Testing ConvertFromPyObject using fd(self={"abcF" : %s})
fd(self={"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',) fd(self={"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',)
fd(self={"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',) fd(self={"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',)
fd(self={"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',) fd(self={"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',)
fd(self={"abcF" : FailingMapping()}):NotImplementedError:() fd(self={"abcF" : FailingMapping()}):NotImplementedError:('keys',)
fd(self={"abcF" : FailingMappingKey()}):NotImplementedError:() fd(self={"abcF" : FailingMappingKey()}):NotImplementedError:('getitem:mappingkey',)
fd(self={"abcF" : FailingNumber()}):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing StringToChars using fd(self=Mapping({%s : 1})) >>> Testing StringToChars using fd(self=Mapping({%s : 1}))
fd(self=Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) fd(self=Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',)
@@ -1004,14 +1083,15 @@ fd(self=Mapping({"abcG" : Mapping({"\0" : 1})})):TypeError:('expected string wit
<<< Finished <<< Finished
>>> Testing *Iter* using fd(self=Mapping({"abcG" : %s})) >>> Testing *Iter* using fd(self=Mapping({"abcG" : %s}))
fd(self=Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',) fd(self=Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',)
fd(self=Mapping({"abcG" : FailingIterNext()})):NotImplementedError:() fd(self=Mapping({"abcG" : FailingIterNext()})):NotImplementedError:('next',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using fd(self=Mapping({"abcG" : %s})) >>> Testing ConvertFromPyObject using fd(self=Mapping({"abcG" : %s}))
fd(self=Mapping({"abcG" : None})):TypeError:('unable to convert NoneType to vim structure',) fd(self=Mapping({"abcG" : None})):TypeError:('unable to convert NoneType to vim structure',)
fd(self=Mapping({"abcG" : {"": 1}})):ValueError:('empty keys are not allowed',) fd(self=Mapping({"abcG" : {"": 1}})):ValueError:('empty keys are not allowed',)
fd(self=Mapping({"abcG" : {u"": 1}})):ValueError:('empty keys are not allowed',) fd(self=Mapping({"abcG" : {u"": 1}})):ValueError:('empty keys are not allowed',)
fd(self=Mapping({"abcG" : FailingMapping()})):NotImplementedError:() fd(self=Mapping({"abcG" : FailingMapping()})):NotImplementedError:('keys',)
fd(self=Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:() fd(self=Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:('getitem:mappingkey',)
fd(self=Mapping({"abcG" : FailingNumber()})):TypeError:('long() argument must be a string or a number',)
<<< Finished <<< Finished
>>> Testing *Iter* using fd(self=%s) >>> Testing *Iter* using fd(self=%s)
fd(self=FailingIter()):TypeError:('unable to convert FailingIter to vim dictionary',) fd(self=FailingIter()):TypeError:('unable to convert FailingIter to vim dictionary',)
@@ -1021,8 +1101,9 @@ fd(self=FailingIterNext()):TypeError:('unable to convert FailingIterNext to vim
fd(self=None):TypeError:('unable to convert NoneType to vim dictionary',) fd(self=None):TypeError:('unable to convert NoneType to vim dictionary',)
fd(self={"": 1}):ValueError:('empty keys are not allowed',) fd(self={"": 1}):ValueError:('empty keys are not allowed',)
fd(self={u"": 1}):ValueError:('empty keys are not allowed',) fd(self={u"": 1}):ValueError:('empty keys are not allowed',)
fd(self=FailingMapping()):NotImplementedError:() fd(self=FailingMapping()):NotImplementedError:('keys',)
fd(self=FailingMappingKey()):NotImplementedError:() fd(self=FailingMappingKey()):NotImplementedError:('getitem:mappingkey',)
fd(self=FailingNumber()):TypeError:('unable to convert FailingNumber to vim dictionary',)
<<< Finished <<< Finished
>>> Testing ConvertFromPyMapping using fd(self=%s) >>> Testing ConvertFromPyMapping using fd(self=%s)
fd(self=[]):TypeError:('unable to convert list to vim dictionary',) fd(self=[]):TypeError:('unable to convert list to vim dictionary',)
@@ -1040,14 +1121,23 @@ vim.current.window.xxx:AttributeError:('xxx',)
vim.current.window.buffer = 0:TypeError:('readonly attribute: buffer',) vim.current.window.buffer = 0:TypeError:('readonly attribute: buffer',)
vim.current.window.cursor = (100000000, 100000000):error:('cursor position outside buffer',) vim.current.window.cursor = (100000000, 100000000):error:('cursor position outside buffer',)
vim.current.window.cursor = True:TypeError:('argument must be 2-item sequence, not bool',) vim.current.window.cursor = True:TypeError:('argument must be 2-item sequence, not bool',)
vim.current.window.height = "abcK":TypeError:('expected int(), long() or something supporting coercing to long(), but got str',) >>> Testing NumberToLong using vim.current.window.height = %s
vim.current.window.width = "abcL":TypeError:('expected int(), long() or something supporting coercing to long(), but got str',) vim.current.window.height = []:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',)
vim.current.window.height = None:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',)
vim.current.window.height = -1:ValueError:('number must be greater or equal to zero',)
<<< Finished
>>> Testing NumberToLong using vim.current.window.width = %s
vim.current.window.width = []:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',)
vim.current.window.width = None:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',)
vim.current.window.width = -1:ValueError:('number must be greater or equal to zero',)
<<< Finished
vim.current.window.xxxxxx = True:AttributeError:('xxxxxx',) vim.current.window.xxxxxx = True:AttributeError:('xxxxxx',)
> WinList > WinList
>> WinListItem >> WinListItem
vim.windows[1000]:IndexError:('no such window',) vim.windows[1000]:IndexError:('no such window',)
> Buffer > Buffer
>> StringToLine (indirect) >> StringToLine (indirect)
vim.current.buffer[0] = u"\na":error:('string cannot contain newlines',)
vim.current.buffer[0] = "\na":error:('string cannot contain newlines',) vim.current.buffer[0] = "\na":error:('string cannot contain newlines',)
>> SetBufferLine (indirect) >> SetBufferLine (indirect)
vim.current.buffer[0] = True:TypeError:('bad argument type for built-in operation',) vim.current.buffer[0] = True:TypeError:('bad argument type for built-in operation',)
@@ -1075,8 +1165,13 @@ vim.current.buffer.mark("!"):error:('invalid mark name',)
vim.current.buffer.range(1, 2, 3):TypeError:('function takes exactly 2 arguments (3 given)',) vim.current.buffer.range(1, 2, 3):TypeError:('function takes exactly 2 arguments (3 given)',)
> BufMap > BufMap
>> BufMapItem >> BufMapItem
vim.buffers[None]:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',)
vim.buffers[100000000]:KeyError:(100000000,) vim.buffers[100000000]:KeyError:(100000000,)
>>> Testing NumberToLong using vim.buffers[%s]
vim.buffers[[]]:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',)
vim.buffers[None]:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',)
vim.buffers[-1]:ValueError:('number must be greater then zero',)
vim.buffers[0]:ValueError:('number must be greater then zero',)
<<< Finished
> Current > Current
>> CurrentGetattr >> CurrentGetattr
vim.current.xxx:AttributeError:('xxx',) vim.current.xxx:AttributeError:('xxx',)
@@ -1086,9 +1181,14 @@ vim.current.buffer = True:TypeError:('expected vim.Buffer object, but got bool',
vim.current.window = True:TypeError:('expected vim.Window object, but got bool',) vim.current.window = True:TypeError:('expected vim.Window object, but got bool',)
vim.current.tabpage = True:TypeError:('expected vim.TabPage object, but got bool',) vim.current.tabpage = True:TypeError:('expected vim.TabPage object, but got bool',)
vim.current.xxx = True:AttributeError:('xxx',) vim.current.xxx = True:AttributeError:('xxx',)
['/testdir']
'/testdir'
2,xx 2,xx
before before
after after
pythonx/topmodule/__init__.py
pythonx/topmodule/submodule/__init__.py
pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py
vim.command("throw 'abcN'"):error:('abcN',) vim.command("throw 'abcN'"):error:('abcN',)
Exe("throw 'def'"):error:('def',) Exe("throw 'def'"):error:('def',)
vim.eval("Exe('throw ''ghi''')"):error:('ghi',) vim.eval("Exe('throw ''ghi''')"):error:('ghi',)

View File

@@ -290,7 +290,7 @@ EOF
:" threading :" threading
:let l = [0] :let l = [0]
:py3 l=vim.bindeval('l') :py3 l=vim.bindeval('l')
:py3 <<EOF py3 <<EOF
import threading import threading
import time import time
@@ -320,7 +320,7 @@ EOF
:" settrace :" settrace
:let l = [] :let l = []
:py3 l=vim.bindeval('l') :py3 l=vim.bindeval('l')
:py3 <<EOF py3 <<EOF
import sys import sys
def traceit(frame, event, arg): def traceit(frame, event, arg):
@@ -335,9 +335,9 @@ def trace_main():
EOF EOF
:py3 sys.settrace(traceit) :py3 sys.settrace(traceit)
:py3 trace_main() :py3 trace_main()
:py3 sys.settrace(None)
:py3 del traceit :py3 del traceit
:py3 del trace_main :py3 del trace_main
:py3 sys.settrace(None)
:$put =string(l) :$put =string(l)
:" :"
:" Vars :" Vars
@@ -898,6 +898,7 @@ def convertfrompyobject_test(expr, recurse=True):
'{"": 1}', # Same, but with unicode object '{"": 1}', # Same, but with unicode object
'FailingMapping()', # 'FailingMapping()', #
'FailingMappingKey()', # 'FailingMappingKey()', #
'FailingNumber()', #
)) ))
def convertfrompymapping_test(expr): def convertfrompymapping_test(expr):
@@ -912,46 +913,68 @@ def iter_test(expr):
'FailingIterNext()', 'FailingIterNext()',
)) ))
def number_test(expr, natural=False, unsigned=False):
if natural:
unsigned = True
return subexpr_test(expr, 'NumberToLong', (
'[]',
'None',
) + (('-1',) if unsigned else ())
+ (('0',) if natural else ()))
class FailingTrue(object): class FailingTrue(object):
def __bool__(self): def __bool__(self):
raise NotImplementedError raise NotImplementedError('bool')
class FailingIter(object): class FailingIter(object):
def __iter__(self): def __iter__(self):
raise NotImplementedError raise NotImplementedError('iter')
class FailingIterNext(object): class FailingIterNext(object):
def __iter__(self): def __iter__(self):
return self return self
def __next__(self): def __next__(self):
raise NotImplementedError raise NotImplementedError('next')
class FailingMappingKey(object): class FailingMappingKey(object):
def __getitem__(self, item): def __getitem__(self, item):
raise NotImplementedError raise NotImplementedError('getitem:mappingkey')
def keys(self): def keys(self):
return list("abcH") return list("abcH")
class FailingMapping(object): class FailingMapping(object):
def __getitem__(self): def __getitem__(self):
raise NotImplementedError raise NotImplementedError('getitem:mapping')
def keys(self): def keys(self):
raise NotImplementedError raise NotImplementedError('keys')
class FailingList(list): class FailingList(list):
def __getitem__(self, idx): def __getitem__(self, idx):
if i == 2: if i == 2:
raise NotImplementedError raise NotImplementedError('getitem:list')
else: else:
return super(FailingList, self).__getitem__(idx) return super(FailingList, self).__getitem__(idx)
class NoArgsCall(object):
def __call__(self):
pass
class FailingCall(object):
def __call__(self, path):
raise NotImplementedError('call')
class FailingNumber(object):
def __int__(self):
raise NotImplementedError('int')
cb.append("> Output") cb.append("> Output")
cb.append(">> OutputSetattr") cb.append(">> OutputSetattr")
ee('del sys.stdout.softspace') ee('del sys.stdout.softspace')
ee('sys.stdout.softspace = []') number_test('sys.stdout.softspace = %s', unsigned=True)
number_test('sys.stderr.softspace = %s', unsigned=True)
ee('sys.stdout.attr = None') ee('sys.stdout.attr = None')
cb.append(">> OutputWrite") cb.append(">> OutputWrite")
ee('sys.stdout.write(None)') ee('sys.stdout.write(None)')
@@ -960,18 +983,34 @@ ee('sys.stdout.writelines(None)')
ee('sys.stdout.writelines([1])') ee('sys.stdout.writelines([1])')
iter_test('sys.stdout.writelines(%s)') iter_test('sys.stdout.writelines(%s)')
cb.append("> VimCommand") cb.append("> VimCommand")
ee('vim.command(1)') stringtochars_test('vim.command(%s)')
ee('vim.command("", 2)')
#! Not checked: vim->python exceptions translating: checked later #! Not checked: vim->python exceptions translating: checked later
cb.append("> VimToPython") cb.append("> VimToPython")
#! Not checked: everything: needs errors in internal python functions #! Not checked: everything: needs errors in internal python functions
cb.append("> VimEval") cb.append("> VimEval")
ee('vim.eval(1)') stringtochars_test('vim.eval(%s)')
ee('vim.eval("", FailingTrue())')
#! Not checked: everything: needs errors in internal python functions #! Not checked: everything: needs errors in internal python functions
cb.append("> VimEvalPy") cb.append("> VimEvalPy")
ee('vim.bindeval(1)') stringtochars_test('vim.bindeval(%s)')
ee('vim.eval("", 2)')
#! Not checked: vim->python exceptions translating: checked later #! Not checked: vim->python exceptions translating: checked later
cb.append("> VimStrwidth") cb.append("> VimStrwidth")
ee('vim.strwidth(1)') stringtochars_test('vim.strwidth(%s)')
cb.append("> VimForeachRTP")
ee('vim.foreach_rtp(None)')
ee('vim.foreach_rtp(NoArgsCall())')
ee('vim.foreach_rtp(FailingCall())')
ee('vim.foreach_rtp(int, 2)')
cb.append('> import')
old_rtp = vim.options['rtp']
vim.options['rtp'] = os.getcwd().replace(',', '\\,').replace('\\', '\\\\')
ee('import xxx_no_such_module_xxx')
ee('import failing_import')
ee('import failing')
vim.options['rtp'] = old_rtp
del old_rtp
cb.append("> Dictionary") cb.append("> Dictionary")
cb.append(">> DictionaryConstructor") cb.append(">> DictionaryConstructor")
ee('vim.Dictionary("abcI")') ee('vim.Dictionary("abcI")')
@@ -1050,8 +1089,8 @@ cb.append(">> WindowSetattr")
ee('vim.current.window.buffer = 0') ee('vim.current.window.buffer = 0')
ee('vim.current.window.cursor = (100000000, 100000000)') ee('vim.current.window.cursor = (100000000, 100000000)')
ee('vim.current.window.cursor = True') ee('vim.current.window.cursor = True')
ee('vim.current.window.height = "abcK"') number_test('vim.current.window.height = %s', unsigned=True)
ee('vim.current.window.width = "abcL"') number_test('vim.current.window.width = %s', unsigned=True)
ee('vim.current.window.xxxxxx = True') ee('vim.current.window.xxxxxx = True')
cb.append("> WinList") cb.append("> WinList")
cb.append(">> WinListItem") cb.append(">> WinListItem")
@@ -1059,6 +1098,7 @@ ee('vim.windows[1000]')
cb.append("> Buffer") cb.append("> Buffer")
cb.append(">> StringToLine (indirect)") cb.append(">> StringToLine (indirect)")
ee('vim.current.buffer[0] = "\\na"') ee('vim.current.buffer[0] = "\\na"')
ee('vim.current.buffer[0] = b"\\na"')
cb.append(">> SetBufferLine (indirect)") cb.append(">> SetBufferLine (indirect)")
ee('vim.current.buffer[0] = True') ee('vim.current.buffer[0] = True')
cb.append(">> SetBufferLineList (indirect)") cb.append(">> SetBufferLineList (indirect)")
@@ -1085,8 +1125,8 @@ cb.append(">> BufferRange")
ee('vim.current.buffer.range(1, 2, 3)') ee('vim.current.buffer.range(1, 2, 3)')
cb.append("> BufMap") cb.append("> BufMap")
cb.append(">> BufMapItem") cb.append(">> BufMapItem")
ee('vim.buffers[None]')
ee('vim.buffers[100000000]') ee('vim.buffers[100000000]')
number_test('vim.buffers[%s]', natural=True)
cb.append("> Current") cb.append("> Current")
cb.append(">> CurrentGetattr") cb.append(">> CurrentGetattr")
ee('vim.current.xxx') ee('vim.current.xxx')
@@ -1110,12 +1150,16 @@ del Mapping
del convertfrompyobject_test del convertfrompyobject_test
del convertfrompymapping_test del convertfrompymapping_test
del iter_test del iter_test
del number_test
del FailingTrue del FailingTrue
del FailingIter del FailingIter
del FailingIterNext del FailingIterNext
del FailingMapping del FailingMapping
del FailingMappingKey del FailingMappingKey
del FailingList del FailingList
del NoArgsCall
del FailingCall
del FailingNumber
EOF EOF
:delfunction F :delfunction F
:" :"
@@ -1124,6 +1168,16 @@ py3 << EOF
sys.path.insert(0, os.path.join(os.getcwd(), 'python_before')) sys.path.insert(0, os.path.join(os.getcwd(), 'python_before'))
sys.path.append(os.path.join(os.getcwd(), 'python_after')) sys.path.append(os.path.join(os.getcwd(), 'python_after'))
vim.options['rtp'] = os.getcwd().replace(',', '\\,').replace('\\', '\\\\') vim.options['rtp'] = os.getcwd().replace(',', '\\,').replace('\\', '\\\\')
l = []
def callback(path):
l.append(os.path.relpath(path))
vim.foreach_rtp(callback)
cb.append(repr(l))
del l
def callback(path):
return os.path.relpath(path)
cb.append(repr(vim.foreach_rtp(callback)))
del callback
from module import dir as d from module import dir as d
from modulex import ddir from modulex import ddir
cb.append(d + ',' + ddir) cb.append(d + ',' + ddir)
@@ -1131,10 +1185,19 @@ import before
cb.append(before.dir) cb.append(before.dir)
import after import after
cb.append(after.dir) cb.append(after.dir)
import topmodule as tm
import topmodule.submodule as tms
import topmodule.submodule.subsubmodule.subsubsubmodule as tmsss
cb.append(tm.__file__[-len('modulex/topmodule/__init__.py'):])
cb.append(tms.__file__[-len('modulex/topmodule/submodule/__init__.py'):])
cb.append(tmsss.__file__[-len('modulex/topmodule/submodule/subsubmodule/subsubsubmodule.py'):])
del before del before
del after del after
del d del d
del ddir del ddir
del tm
del tms
del tmsss
EOF EOF
:" :"
:" Test exceptions :" Test exceptions
@@ -1188,6 +1251,7 @@ EOF
:call garbagecollect(1) :call garbagecollect(1)
:" :"
:/^start:/,$wq! test.out :/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:call getchar() :call getchar()
ENDTEST ENDTEST

View File

@@ -430,7 +430,16 @@ test87.in
> Output > Output
>> OutputSetattr >> OutputSetattr
del sys.stdout.softspace:(<class 'AttributeError'>, AttributeError("can't delete OutputObject attributes",)) del sys.stdout.softspace:(<class 'AttributeError'>, AttributeError("can't delete OutputObject attributes",))
>>> Testing NumberToLong using sys.stdout.softspace = %s
sys.stdout.softspace = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',)) sys.stdout.softspace = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
sys.stdout.softspace = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
sys.stdout.softspace = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
<<< Finished
>>> Testing NumberToLong using sys.stderr.softspace = %s
sys.stderr.softspace = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
sys.stderr.softspace = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
sys.stderr.softspace = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
<<< Finished
sys.stdout.attr = None:(<class 'AttributeError'>, AttributeError('invalid attribute: attr',)) sys.stdout.attr = None:(<class 'AttributeError'>, AttributeError('invalid attribute: attr',))
>> OutputWrite >> OutputWrite
sys.stdout.write(None):(<class 'TypeError'>, TypeError("Can't convert 'NoneType' object to str implicitly",)) sys.stdout.write(None):(<class 'TypeError'>, TypeError("Can't convert 'NoneType' object to str implicitly",))
@@ -438,24 +447,52 @@ sys.stdout.write(None):(<class 'TypeError'>, TypeError("Can't convert 'NoneType'
sys.stdout.writelines(None):(<class 'TypeError'>, TypeError("'NoneType' object is not iterable",)) sys.stdout.writelines(None):(<class 'TypeError'>, TypeError("'NoneType' object is not iterable",))
sys.stdout.writelines([1]):(<class 'TypeError'>, TypeError("Can't convert 'int' object to str implicitly",)) sys.stdout.writelines([1]):(<class 'TypeError'>, TypeError("Can't convert 'int' object to str implicitly",))
>>> Testing *Iter* using sys.stdout.writelines(%s) >>> Testing *Iter* using sys.stdout.writelines(%s)
sys.stdout.writelines(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) sys.stdout.writelines(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
sys.stdout.writelines(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) sys.stdout.writelines(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
> VimCommand > VimCommand
>>> Testing StringToChars using vim.command(%s)
vim.command(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) vim.command(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
vim.command(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
vim.command("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
<<< Finished
vim.command("", 2):(<class 'TypeError'>, TypeError('command() takes exactly one argument (2 given)',))
> VimToPython > VimToPython
> VimEval > VimEval
>>> Testing StringToChars using vim.eval(%s)
vim.eval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) vim.eval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
vim.eval(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
vim.eval("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
<<< Finished
vim.eval("", FailingTrue()):(<class 'TypeError'>, TypeError('function takes exactly 1 argument (2 given)',))
> VimEvalPy > VimEvalPy
>>> Testing StringToChars using vim.bindeval(%s)
vim.bindeval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) vim.bindeval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
vim.bindeval(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
vim.bindeval("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
<<< Finished
vim.eval("", 2):(<class 'TypeError'>, TypeError('function takes exactly 1 argument (2 given)',))
> VimStrwidth > VimStrwidth
>>> Testing StringToChars using vim.strwidth(%s)
vim.strwidth(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) vim.strwidth(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
vim.strwidth(b"\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
vim.strwidth("\0"):(<class 'TypeError'>, TypeError('expected bytes with no null',))
<<< Finished
> VimForeachRTP
vim.foreach_rtp(None):(<class 'TypeError'>, TypeError("'NoneType' object is not callable",))
vim.foreach_rtp(NoArgsCall()):(<class 'TypeError'>, TypeError('__call__() takes exactly 1 positional argument (2 given)',))
vim.foreach_rtp(FailingCall()):(<class 'NotImplementedError'>, NotImplementedError('call',))
vim.foreach_rtp(int, 2):(<class 'TypeError'>, TypeError('foreach_rtp() takes exactly one argument (2 given)',))
> import
import xxx_no_such_module_xxx:(<class 'ImportError'>, ImportError('No module named xxx_no_such_module_xxx',))
import failing_import:(<class 'ImportError'>, ImportError('No module named failing_import',))
import failing:(<class 'ImportError'>, ImportError('No module named failing',))
> Dictionary > Dictionary
>> DictionaryConstructor >> DictionaryConstructor
vim.Dictionary("abcI"):(<class 'ValueError'>, ValueError('expected sequence element of size 2, but got sequence of size 1',)) vim.Dictionary("abcI"):(<class 'ValueError'>, ValueError('expected sequence element of size 2, but got sequence of size 1',))
>> DictionarySetattr >> DictionarySetattr
del d.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.Dictionary attributes',)) del d.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.Dictionary attributes',))
d.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError()) d.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError('bool',))
vim.vvars.locked = False:(<class 'TypeError'>, TypeError('cannot modify fixed dictionary',)) vim.vvars.locked = False:(<class 'TypeError'>, TypeError('cannot modify fixed dictionary',))
d.scope = True:(<class 'AttributeError'>, AttributeError('cannot set attribute scope',)) d.scope = True:(<class 'AttributeError'>, AttributeError('cannot set attribute scope',))
d.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',)) d.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',))
@@ -494,14 +531,15 @@ d["a"] = {"abcF" : Mapping({"\0" : 1})}:(<class 'TypeError'>, TypeError('expecte
<<< Finished <<< Finished
>>> Testing *Iter* using d["a"] = {"abcF" : %s} >>> Testing *Iter* using d["a"] = {"abcF" : %s}
d["a"] = {"abcF" : FailingIter()}:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) d["a"] = {"abcF" : FailingIter()}:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
d["a"] = {"abcF" : FailingIterNext()}:(<class 'NotImplementedError'>, NotImplementedError()) d["a"] = {"abcF" : FailingIterNext()}:(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s} >>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s}
d["a"] = {"abcF" : None}:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) d["a"] = {"abcF" : None}:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
d["a"] = {"abcF" : {b"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d["a"] = {"abcF" : {b"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d["a"] = {"abcF" : {"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d["a"] = {"abcF" : {"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d["a"] = {"abcF" : FailingMapping()}:(<class 'NotImplementedError'>, NotImplementedError()) d["a"] = {"abcF" : FailingMapping()}:(<class 'NotImplementedError'>, NotImplementedError('keys',))
d["a"] = {"abcF" : FailingMappingKey()}:(<class 'NotImplementedError'>, NotImplementedError()) d["a"] = {"abcF" : FailingMappingKey()}:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
d["a"] = {"abcF" : FailingNumber()}:(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing StringToChars using d["a"] = Mapping({%s : 1}) >>> Testing StringToChars using d["a"] = Mapping({%s : 1})
d["a"] = Mapping({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) d["a"] = Mapping({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -520,34 +558,36 @@ d["a"] = Mapping({"abcG" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError
<<< Finished <<< Finished
>>> Testing *Iter* using d["a"] = Mapping({"abcG" : %s}) >>> Testing *Iter* using d["a"] = Mapping({"abcG" : %s})
d["a"] = Mapping({"abcG" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) d["a"] = Mapping({"abcG" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
d["a"] = Mapping({"abcG" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError()) d["a"] = Mapping({"abcG" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d["a"] = Mapping({"abcG" : %s}) >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abcG" : %s})
d["a"] = Mapping({"abcG" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) d["a"] = Mapping({"abcG" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
d["a"] = Mapping({"abcG" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d["a"] = Mapping({"abcG" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d["a"] = Mapping({"abcG" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d["a"] = Mapping({"abcG" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d["a"] = Mapping({"abcG" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError()) d["a"] = Mapping({"abcG" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',))
d["a"] = Mapping({"abcG" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError()) d["a"] = Mapping({"abcG" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
d["a"] = Mapping({"abcG" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing *Iter* using d["a"] = %s >>> Testing *Iter* using d["a"] = %s
d["a"] = FailingIter():(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) d["a"] = FailingIter():(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
d["a"] = FailingIterNext():(<class 'NotImplementedError'>, NotImplementedError()) d["a"] = FailingIterNext():(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d["a"] = %s >>> Testing ConvertFromPyObject using d["a"] = %s
d["a"] = None:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) d["a"] = None:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
d["a"] = {b"": 1}:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d["a"] = {b"": 1}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d["a"] = {"": 1}:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d["a"] = {"": 1}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d["a"] = FailingMapping():(<class 'NotImplementedError'>, NotImplementedError()) d["a"] = FailingMapping():(<class 'NotImplementedError'>, NotImplementedError('keys',))
d["a"] = FailingMappingKey():(<class 'NotImplementedError'>, NotImplementedError()) d["a"] = FailingMappingKey():(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
d["a"] = FailingNumber():(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>> DictionaryUpdate >> DictionaryUpdate
>>> kwargs >>> kwargs
>>> iter >>> iter
d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError()) d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',))
d.update([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError()) d.update([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError('next',))
>>> Testing *Iter* using d.update(%s) >>> Testing *Iter* using d.update(%s)
d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing StringToChars using d.update({%s : 1}) >>> Testing StringToChars using d.update({%s : 1})
d.update({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) d.update({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -566,14 +606,15 @@ d.update({"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expect
<<< Finished <<< Finished
>>> Testing *Iter* using d.update({"abcF" : %s}) >>> Testing *Iter* using d.update({"abcF" : %s})
d.update({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) d.update({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
d.update({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError()) d.update({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update({"abcF" : %s}) >>> Testing ConvertFromPyObject using d.update({"abcF" : %s})
d.update({"abcF" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) d.update({"abcF" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
d.update({"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update({"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update({"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update({"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError()) d.update({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',))
d.update({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError()) d.update({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
d.update({"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing StringToChars using d.update(Mapping({%s : 1})) >>> Testing StringToChars using d.update(Mapping({%s : 1}))
d.update(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) d.update(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -592,25 +633,27 @@ d.update(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeErro
<<< Finished <<< Finished
>>> Testing *Iter* using d.update(Mapping({"abcG" : %s})) >>> Testing *Iter* using d.update(Mapping({"abcG" : %s}))
d.update(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) d.update(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
d.update(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError()) d.update(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update(Mapping({"abcG" : %s})) >>> Testing ConvertFromPyObject using d.update(Mapping({"abcG" : %s}))
d.update(Mapping({"abcG" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) d.update(Mapping({"abcG" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
d.update(Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update(Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update(Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update(Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError()) d.update(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError('keys',))
d.update(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError()) d.update(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
d.update(Mapping({"abcG" : FailingNumber()})):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing *Iter* using d.update(%s) >>> Testing *Iter* using d.update(%s)
d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update(%s) >>> Testing ConvertFromPyObject using d.update(%s)
d.update(None):(<class 'TypeError'>, TypeError("'NoneType' object is not iterable",)) d.update(None):(<class 'TypeError'>, TypeError("'NoneType' object is not iterable",))
d.update({b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update({b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update({"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update({"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError()) d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',))
d.update(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError()) d.update(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
d.update(FailingNumber()):(<class 'TypeError'>, TypeError("'FailingNumber' object is not iterable",))
<<< Finished <<< Finished
>>> Testing StringToChars using d.update(((%s, 0),)) >>> Testing StringToChars using d.update(((%s, 0),))
d.update(((1, 0),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) d.update(((1, 0),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -634,14 +677,15 @@ d.update((("a", {"abcF" : Mapping({"\0" : 1})}),)):(<class 'TypeError'>, TypeErr
<<< Finished <<< Finished
>>> Testing *Iter* using d.update((("a", {"abcF" : %s}),)) >>> Testing *Iter* using d.update((("a", {"abcF" : %s}),))
d.update((("a", {"abcF" : FailingIter()}),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) d.update((("a", {"abcF" : FailingIter()}),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
d.update((("a", {"abcF" : FailingIterNext()}),)):(<class 'NotImplementedError'>, NotImplementedError()) d.update((("a", {"abcF" : FailingIterNext()}),)):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update((("a", {"abcF" : %s}),)) >>> Testing ConvertFromPyObject using d.update((("a", {"abcF" : %s}),))
d.update((("a", {"abcF" : None}),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) d.update((("a", {"abcF" : None}),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
d.update((("a", {"abcF" : {b"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update((("a", {"abcF" : {b"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update((("a", {"abcF" : {"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update((("a", {"abcF" : {"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update((("a", {"abcF" : FailingMapping()}),)):(<class 'NotImplementedError'>, NotImplementedError()) d.update((("a", {"abcF" : FailingMapping()}),)):(<class 'NotImplementedError'>, NotImplementedError('keys',))
d.update((("a", {"abcF" : FailingMappingKey()}),)):(<class 'NotImplementedError'>, NotImplementedError()) d.update((("a", {"abcF" : FailingMappingKey()}),)):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
d.update((("a", {"abcF" : FailingNumber()}),)):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),)) >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),))
d.update((("a", Mapping({1 : 1})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) d.update((("a", Mapping({1 : 1})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -660,25 +704,27 @@ d.update((("a", Mapping({"abcG" : Mapping({"\0" : 1})})),)):(<class 'TypeError'>
<<< Finished <<< Finished
>>> Testing *Iter* using d.update((("a", Mapping({"abcG" : %s})),)) >>> Testing *Iter* using d.update((("a", Mapping({"abcG" : %s})),))
d.update((("a", Mapping({"abcG" : FailingIter()})),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) d.update((("a", Mapping({"abcG" : FailingIter()})),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
d.update((("a", Mapping({"abcG" : FailingIterNext()})),)):(<class 'NotImplementedError'>, NotImplementedError()) d.update((("a", Mapping({"abcG" : FailingIterNext()})),)):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abcG" : %s})),)) >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abcG" : %s})),))
d.update((("a", Mapping({"abcG" : None})),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) d.update((("a", Mapping({"abcG" : None})),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
d.update((("a", Mapping({"abcG" : {b"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update((("a", Mapping({"abcG" : {b"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update((("a", Mapping({"abcG" : {"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update((("a", Mapping({"abcG" : {"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update((("a", Mapping({"abcG" : FailingMapping()})),)):(<class 'NotImplementedError'>, NotImplementedError()) d.update((("a", Mapping({"abcG" : FailingMapping()})),)):(<class 'NotImplementedError'>, NotImplementedError('keys',))
d.update((("a", Mapping({"abcG" : FailingMappingKey()})),)):(<class 'NotImplementedError'>, NotImplementedError()) d.update((("a", Mapping({"abcG" : FailingMappingKey()})),)):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
d.update((("a", Mapping({"abcG" : FailingNumber()})),)):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing *Iter* using d.update((("a", %s),)) >>> Testing *Iter* using d.update((("a", %s),))
d.update((("a", FailingIter()),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) d.update((("a", FailingIter()),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
d.update((("a", FailingIterNext()),)):(<class 'NotImplementedError'>, NotImplementedError()) d.update((("a", FailingIterNext()),)):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using d.update((("a", %s),)) >>> Testing ConvertFromPyObject using d.update((("a", %s),))
d.update((("a", None),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) d.update((("a", None),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
d.update((("a", {b"": 1}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update((("a", {b"": 1}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update((("a", {"": 1}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) d.update((("a", {"": 1}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
d.update((("a", FailingMapping()),)):(<class 'NotImplementedError'>, NotImplementedError()) d.update((("a", FailingMapping()),)):(<class 'NotImplementedError'>, NotImplementedError('keys',))
d.update((("a", FailingMappingKey()),)):(<class 'NotImplementedError'>, NotImplementedError()) d.update((("a", FailingMappingKey()),)):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
d.update((("a", FailingNumber()),)):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>> DictionaryPopItem >> DictionaryPopItem
d.popitem(1, 2):(<class 'TypeError'>, TypeError('popitem() takes no arguments (2 given)',)) d.popitem(1, 2):(<class 'TypeError'>, TypeError('popitem() takes no arguments (2 given)',))
@@ -689,8 +735,8 @@ d.has_key():(<class 'TypeError'>, TypeError('has_key() takes exactly one argumen
vim.List(1, 2):(<class 'TypeError'>, TypeError('function takes at most 1 argument (2 given)',)) vim.List(1, 2):(<class 'TypeError'>, TypeError('function takes at most 1 argument (2 given)',))
vim.List(a=1):(<class 'TypeError'>, TypeError('list constructor does not accept keyword arguments',)) vim.List(a=1):(<class 'TypeError'>, TypeError('list constructor does not accept keyword arguments',))
>>> Testing *Iter* using vim.List(%s) >>> Testing *Iter* using vim.List(%s)
vim.List(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) vim.List(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
vim.List(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) vim.List(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing StringToChars using vim.List([{%s : 1}]) >>> Testing StringToChars using vim.List([{%s : 1}])
vim.List([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) vim.List([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -709,14 +755,15 @@ vim.List([{"abcF" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expe
<<< Finished <<< Finished
>>> Testing *Iter* using vim.List([{"abcF" : %s}]) >>> Testing *Iter* using vim.List([{"abcF" : %s}])
vim.List([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) vim.List([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
vim.List([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError()) vim.List([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}]) >>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}])
vim.List([{"abcF" : None}]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) vim.List([{"abcF" : None}]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
vim.List([{"abcF" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) vim.List([{"abcF" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
vim.List([{"abcF" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) vim.List([{"abcF" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
vim.List([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError()) vim.List([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
vim.List([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError()) vim.List([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
vim.List([{"abcF" : FailingNumber()}]):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing StringToChars using vim.List([Mapping({%s : 1})]) >>> Testing StringToChars using vim.List([Mapping({%s : 1})])
vim.List([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) vim.List([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -735,25 +782,27 @@ vim.List([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeEr
<<< Finished <<< Finished
>>> Testing *Iter* using vim.List([Mapping({"abcG" : %s})]) >>> Testing *Iter* using vim.List([Mapping({"abcG" : %s})])
vim.List([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) vim.List([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
vim.List([Mapping({"abcG" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError()) vim.List([Mapping({"abcG" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using vim.List([Mapping({"abcG" : %s})]) >>> Testing ConvertFromPyObject using vim.List([Mapping({"abcG" : %s})])
vim.List([Mapping({"abcG" : None})]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) vim.List([Mapping({"abcG" : None})]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
vim.List([Mapping({"abcG" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) vim.List([Mapping({"abcG" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
vim.List([Mapping({"abcG" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) vim.List([Mapping({"abcG" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
vim.List([Mapping({"abcG" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError()) vim.List([Mapping({"abcG" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
vim.List([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError()) vim.List([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
vim.List([Mapping({"abcG" : FailingNumber()})]):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing *Iter* using vim.List([%s]) >>> Testing *Iter* using vim.List([%s])
vim.List([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) vim.List([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
vim.List([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError()) vim.List([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using vim.List([%s]) >>> Testing ConvertFromPyObject using vim.List([%s])
vim.List([None]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) vim.List([None]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
vim.List([{b"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) vim.List([{b"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
vim.List([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) vim.List([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
vim.List([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError()) vim.List([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
vim.List([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError()) vim.List([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
vim.List([FailingNumber()]):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>> ListItem >> ListItem
l[1000]:(<class 'IndexError'>, IndexError('list index out of range',)) l[1000]:(<class 'IndexError'>, IndexError('list index out of range',))
@@ -763,8 +812,8 @@ l[1000] = 3:(<class 'IndexError'>, IndexError('list index out of range',))
>> ListAssSlice >> ListAssSlice
ll[1:100] = "abcJ":(<class 'vim.error'>, error('list is locked',)) ll[1:100] = "abcJ":(<class 'vim.error'>, error('list is locked',))
>>> Testing *Iter* using l[:] = %s >>> Testing *Iter* using l[:] = %s
l[:] = FailingIter():(<class 'NotImplementedError'>, NotImplementedError()) l[:] = FailingIter():(<class 'NotImplementedError'>, NotImplementedError('iter',))
l[:] = FailingIterNext()::(<class 'NotImplementedError'>, NotImplementedError()) l[:] = FailingIterNext():(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing StringToChars using l[:] = [{%s : 1}] >>> Testing StringToChars using l[:] = [{%s : 1}]
l[:] = [{1 : 1}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) l[:] = [{1 : 1}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -783,14 +832,15 @@ l[:] = [{"abcF" : Mapping({"\0" : 1})}]:(<class 'TypeError'>, TypeError('expecte
<<< Finished <<< Finished
>>> Testing *Iter* using l[:] = [{"abcF" : %s}] >>> Testing *Iter* using l[:] = [{"abcF" : %s}]
l[:] = [{"abcF" : FailingIter()}]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) l[:] = [{"abcF" : FailingIter()}]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
l[:] = [{"abcF" : FailingIterNext()}]:(<class 'NotImplementedError'>, NotImplementedError()) l[:] = [{"abcF" : FailingIterNext()}]:(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}] >>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}]
l[:] = [{"abcF" : None}]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) l[:] = [{"abcF" : None}]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
l[:] = [{"abcF" : {b"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l[:] = [{"abcF" : {b"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l[:] = [{"abcF" : {"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l[:] = [{"abcF" : {"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l[:] = [{"abcF" : FailingMapping()}]:(<class 'NotImplementedError'>, NotImplementedError()) l[:] = [{"abcF" : FailingMapping()}]:(<class 'NotImplementedError'>, NotImplementedError('keys',))
l[:] = [{"abcF" : FailingMappingKey()}]:(<class 'NotImplementedError'>, NotImplementedError()) l[:] = [{"abcF" : FailingMappingKey()}]:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
l[:] = [{"abcF" : FailingNumber()}]:(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing StringToChars using l[:] = [Mapping({%s : 1})] >>> Testing StringToChars using l[:] = [Mapping({%s : 1})]
l[:] = [Mapping({1 : 1})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) l[:] = [Mapping({1 : 1})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -809,30 +859,32 @@ l[:] = [Mapping({"abcG" : Mapping({"\0" : 1})})]:(<class 'TypeError'>, TypeError
<<< Finished <<< Finished
>>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})] >>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})]
l[:] = [Mapping({"abcG" : FailingIter()})]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) l[:] = [Mapping({"abcG" : FailingIter()})]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
l[:] = [Mapping({"abcG" : FailingIterNext()})]:(<class 'NotImplementedError'>, NotImplementedError()) l[:] = [Mapping({"abcG" : FailingIterNext()})]:(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})] >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})]
l[:] = [Mapping({"abcG" : None})]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) l[:] = [Mapping({"abcG" : None})]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
l[:] = [Mapping({"abcG" : {b"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l[:] = [Mapping({"abcG" : {b"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l[:] = [Mapping({"abcG" : {"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l[:] = [Mapping({"abcG" : {"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l[:] = [Mapping({"abcG" : FailingMapping()})]:(<class 'NotImplementedError'>, NotImplementedError()) l[:] = [Mapping({"abcG" : FailingMapping()})]:(<class 'NotImplementedError'>, NotImplementedError('keys',))
l[:] = [Mapping({"abcG" : FailingMappingKey()})]:(<class 'NotImplementedError'>, NotImplementedError()) l[:] = [Mapping({"abcG" : FailingMappingKey()})]:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
l[:] = [Mapping({"abcG" : FailingNumber()})]:(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing *Iter* using l[:] = [%s] >>> Testing *Iter* using l[:] = [%s]
l[:] = [FailingIter()]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) l[:] = [FailingIter()]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
l[:] = [FailingIterNext()]:(<class 'NotImplementedError'>, NotImplementedError()) l[:] = [FailingIterNext()]:(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l[:] = [%s] >>> Testing ConvertFromPyObject using l[:] = [%s]
l[:] = [None]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) l[:] = [None]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
l[:] = [{b"": 1}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l[:] = [{b"": 1}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l[:] = [{"": 1}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l[:] = [{"": 1}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l[:] = [FailingMapping()]:(<class 'NotImplementedError'>, NotImplementedError()) l[:] = [FailingMapping()]:(<class 'NotImplementedError'>, NotImplementedError('keys',))
l[:] = [FailingMappingKey()]:(<class 'NotImplementedError'>, NotImplementedError()) l[:] = [FailingMappingKey()]:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
l[:] = [FailingNumber()]:(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>> ListConcatInPlace >> ListConcatInPlace
>>> Testing *Iter* using l.extend(%s) >>> Testing *Iter* using l.extend(%s)
l.extend(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) l.extend(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',))
l.extend(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) l.extend(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing StringToChars using l.extend([{%s : 1}]) >>> Testing StringToChars using l.extend([{%s : 1}])
l.extend([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) l.extend([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -851,14 +903,15 @@ l.extend([{"abcF" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expe
<<< Finished <<< Finished
>>> Testing *Iter* using l.extend([{"abcF" : %s}]) >>> Testing *Iter* using l.extend([{"abcF" : %s}])
l.extend([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) l.extend([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
l.extend([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError()) l.extend([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}]) >>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}])
l.extend([{"abcF" : None}]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) l.extend([{"abcF" : None}]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
l.extend([{"abcF" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l.extend([{"abcF" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l.extend([{"abcF" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l.extend([{"abcF" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l.extend([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError()) l.extend([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
l.extend([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError()) l.extend([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
l.extend([{"abcF" : FailingNumber()}]):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing StringToChars using l.extend([Mapping({%s : 1})]) >>> Testing StringToChars using l.extend([Mapping({%s : 1})])
l.extend([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) l.extend([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -877,29 +930,31 @@ l.extend([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeEr
<<< Finished <<< Finished
>>> Testing *Iter* using l.extend([Mapping({"abcG" : %s})]) >>> Testing *Iter* using l.extend([Mapping({"abcG" : %s})])
l.extend([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) l.extend([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
l.extend([Mapping({"abcG" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError()) l.extend([Mapping({"abcG" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l.extend([Mapping({"abcG" : %s})]) >>> Testing ConvertFromPyObject using l.extend([Mapping({"abcG" : %s})])
l.extend([Mapping({"abcG" : None})]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) l.extend([Mapping({"abcG" : None})]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
l.extend([Mapping({"abcG" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l.extend([Mapping({"abcG" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l.extend([Mapping({"abcG" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l.extend([Mapping({"abcG" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l.extend([Mapping({"abcG" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError()) l.extend([Mapping({"abcG" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
l.extend([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError()) l.extend([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
l.extend([Mapping({"abcG" : FailingNumber()})]):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing *Iter* using l.extend([%s]) >>> Testing *Iter* using l.extend([%s])
l.extend([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) l.extend([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
l.extend([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError()) l.extend([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using l.extend([%s]) >>> Testing ConvertFromPyObject using l.extend([%s])
l.extend([None]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) l.extend([None]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
l.extend([{b"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l.extend([{b"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l.extend([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l.extend([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
l.extend([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError()) l.extend([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError('keys',))
l.extend([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError()) l.extend([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
l.extend([FailingNumber()]):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>> ListSetattr >> ListSetattr
del l.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.List attributes',)) del l.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.List attributes',))
l.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError()) l.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError('bool',))
l.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',)) l.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',))
> Function > Function
>> FunctionConstructor >> FunctionConstructor
@@ -924,14 +979,15 @@ f({"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected byte
<<< Finished <<< Finished
>>> Testing *Iter* using f({"abcF" : %s}) >>> Testing *Iter* using f({"abcF" : %s})
f({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) f({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
f({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError()) f({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using f({"abcF" : %s}) >>> Testing ConvertFromPyObject using f({"abcF" : %s})
f({"abcF" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) f({"abcF" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
f({"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) f({"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
f({"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) f({"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
f({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError()) f({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',))
f({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError()) f({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
f({"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing StringToChars using f(Mapping({%s : 1})) >>> Testing StringToChars using f(Mapping({%s : 1}))
f(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) f(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -950,25 +1006,27 @@ f(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expe
<<< Finished <<< Finished
>>> Testing *Iter* using f(Mapping({"abcG" : %s})) >>> Testing *Iter* using f(Mapping({"abcG" : %s}))
f(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) f(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
f(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError()) f(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s})) >>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s}))
f(Mapping({"abcG" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) f(Mapping({"abcG" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
f(Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) f(Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
f(Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) f(Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
f(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError()) f(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError('keys',))
f(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError()) f(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
f(Mapping({"abcG" : FailingNumber()})):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing *Iter* using f(%s) >>> Testing *Iter* using f(%s)
f(FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) f(FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
f(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) f(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using f(%s) >>> Testing ConvertFromPyObject using f(%s)
f(None):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) f(None):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
f({b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) f({b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
f({"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) f({"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
f(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError()) f(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',))
f(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError()) f(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
f(FailingNumber()):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing StringToChars using fd(self={%s : 1}) >>> Testing StringToChars using fd(self={%s : 1})
fd(self={1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) fd(self={1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -987,14 +1045,15 @@ fd(self={"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expecte
<<< Finished <<< Finished
>>> Testing *Iter* using fd(self={"abcF" : %s}) >>> Testing *Iter* using fd(self={"abcF" : %s})
fd(self={"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) fd(self={"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
fd(self={"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError()) fd(self={"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using fd(self={"abcF" : %s}) >>> Testing ConvertFromPyObject using fd(self={"abcF" : %s})
fd(self={"abcF" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) fd(self={"abcF" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
fd(self={"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) fd(self={"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
fd(self={"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) fd(self={"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
fd(self={"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError()) fd(self={"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',))
fd(self={"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError()) fd(self={"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
fd(self={"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing StringToChars using fd(self=Mapping({%s : 1})) >>> Testing StringToChars using fd(self=Mapping({%s : 1}))
fd(self=Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) fd(self=Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
@@ -1013,14 +1072,15 @@ fd(self=Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError
<<< Finished <<< Finished
>>> Testing *Iter* using fd(self=Mapping({"abcG" : %s})) >>> Testing *Iter* using fd(self=Mapping({"abcG" : %s}))
fd(self=Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) fd(self=Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
fd(self=Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError()) fd(self=Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError('next',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyObject using fd(self=Mapping({"abcG" : %s})) >>> Testing ConvertFromPyObject using fd(self=Mapping({"abcG" : %s}))
fd(self=Mapping({"abcG" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) fd(self=Mapping({"abcG" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
fd(self=Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) fd(self=Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
fd(self=Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) fd(self=Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
fd(self=Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError()) fd(self=Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError('keys',))
fd(self=Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError()) fd(self=Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
fd(self=Mapping({"abcG" : FailingNumber()})):(<class 'NotImplementedError'>, NotImplementedError('int',))
<<< Finished <<< Finished
>>> Testing *Iter* using fd(self=%s) >>> Testing *Iter* using fd(self=%s)
fd(self=FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim dictionary',)) fd(self=FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim dictionary',))
@@ -1030,8 +1090,9 @@ fd(self=FailingIterNext()):(<class 'TypeError'>, TypeError('unable to convert Fa
fd(self=None):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim dictionary',)) fd(self=None):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim dictionary',))
fd(self={b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) fd(self={b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
fd(self={"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) fd(self={"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
fd(self=FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError()) fd(self=FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',))
fd(self=FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError()) fd(self=FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',))
fd(self=FailingNumber()):(<class 'TypeError'>, TypeError('unable to convert FailingNumber to vim dictionary',))
<<< Finished <<< Finished
>>> Testing ConvertFromPyMapping using fd(self=%s) >>> Testing ConvertFromPyMapping using fd(self=%s)
fd(self=[]):(<class 'AttributeError'>, AttributeError('keys',)) fd(self=[]):(<class 'AttributeError'>, AttributeError('keys',))
@@ -1049,8 +1110,16 @@ vim.current.window.xxx:(<class 'AttributeError'>, AttributeError("'vim.window' o
vim.current.window.buffer = 0:(<class 'TypeError'>, TypeError('readonly attribute: buffer',)) vim.current.window.buffer = 0:(<class 'TypeError'>, TypeError('readonly attribute: buffer',))
vim.current.window.cursor = (100000000, 100000000):(<class 'vim.error'>, error('cursor position outside buffer',)) vim.current.window.cursor = (100000000, 100000000):(<class 'vim.error'>, error('cursor position outside buffer',))
vim.current.window.cursor = True:(<class 'TypeError'>, TypeError('argument must be 2-item sequence, not bool',)) vim.current.window.cursor = True:(<class 'TypeError'>, TypeError('argument must be 2-item sequence, not bool',))
vim.current.window.height = "abcK":(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got str',)) >>> Testing NumberToLong using vim.current.window.height = %s
vim.current.window.width = "abcL":(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got str',)) vim.current.window.height = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
vim.current.window.height = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
vim.current.window.height = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
<<< Finished
>>> Testing NumberToLong using vim.current.window.width = %s
vim.current.window.width = []:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
vim.current.window.width = None:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
vim.current.window.width = -1:(<class 'ValueError'>, ValueError('number must be greater or equal to zero',))
<<< Finished
vim.current.window.xxxxxx = True:(<class 'AttributeError'>, AttributeError('xxxxxx',)) vim.current.window.xxxxxx = True:(<class 'AttributeError'>, AttributeError('xxxxxx',))
> WinList > WinList
>> WinListItem >> WinListItem
@@ -1058,6 +1127,7 @@ vim.windows[1000]:(<class 'IndexError'>, IndexError('no such window',))
> Buffer > Buffer
>> StringToLine (indirect) >> StringToLine (indirect)
vim.current.buffer[0] = "\na":(<class 'vim.error'>, error('string cannot contain newlines',)) vim.current.buffer[0] = "\na":(<class 'vim.error'>, error('string cannot contain newlines',))
vim.current.buffer[0] = b"\na":(<class 'vim.error'>, error('string cannot contain newlines',))
>> SetBufferLine (indirect) >> SetBufferLine (indirect)
vim.current.buffer[0] = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',)) vim.current.buffer[0] = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',))
>> SetBufferLineList (indirect) >> SetBufferLineList (indirect)
@@ -1084,8 +1154,13 @@ vim.current.buffer.mark("!"):(<class 'vim.error'>, error('invalid mark name',))
vim.current.buffer.range(1, 2, 3):(<class 'TypeError'>, TypeError('function takes exactly 2 arguments (3 given)',)) vim.current.buffer.range(1, 2, 3):(<class 'TypeError'>, TypeError('function takes exactly 2 arguments (3 given)',))
> BufMap > BufMap
>> BufMapItem >> BufMapItem
vim.buffers[None]:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
vim.buffers[100000000]:(<class 'KeyError'>, KeyError(100000000,)) vim.buffers[100000000]:(<class 'KeyError'>, KeyError(100000000,))
>>> Testing NumberToLong using vim.buffers[%s]
vim.buffers[[]]:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got list',))
vim.buffers[None]:(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got NoneType',))
vim.buffers[-1]:(<class 'ValueError'>, ValueError('number must be greater then zero',))
vim.buffers[0]:(<class 'ValueError'>, ValueError('number must be greater then zero',))
<<< Finished
> Current > Current
>> CurrentGetattr >> CurrentGetattr
vim.current.xxx:(<class 'AttributeError'>, AttributeError("'vim.currentdata' object has no attribute 'xxx'",)) vim.current.xxx:(<class 'AttributeError'>, AttributeError("'vim.currentdata' object has no attribute 'xxx'",))
@@ -1095,9 +1170,14 @@ vim.current.buffer = True:(<class 'TypeError'>, TypeError('expected vim.Buffer o
vim.current.window = True:(<class 'TypeError'>, TypeError('expected vim.Window object, but got bool',)) vim.current.window = True:(<class 'TypeError'>, TypeError('expected vim.Window object, but got bool',))
vim.current.tabpage = True:(<class 'TypeError'>, TypeError('expected vim.TabPage object, but got bool',)) vim.current.tabpage = True:(<class 'TypeError'>, TypeError('expected vim.TabPage object, but got bool',))
vim.current.xxx = True:(<class 'AttributeError'>, AttributeError('xxx',)) vim.current.xxx = True:(<class 'AttributeError'>, AttributeError('xxx',))
['.']
'.'
3,xx 3,xx
before before
after after
pythonx/topmodule/__init__.py
pythonx/topmodule/submodule/__init__.py
pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py
vim.command("throw 'abcN'"):(<class 'vim.error'>, error('abcN',)) vim.command("throw 'abcN'"):(<class 'vim.error'>, error('abcN',))
Exe("throw 'def'"):(<class 'vim.error'>, error('def',)) Exe("throw 'def'"):(<class 'vim.error'>, error('def',))
vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',)) vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',))

View File

@@ -728,6 +728,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1236,
/**/ /**/
1235, 1235,
/**/ /**/