To: vim_dev@googlegroups.com Subject: Patch 7.3.1236 Fcc: outbox From: Bram Moolenaar <Bram@moolenaar.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.3.1236 Problem: Python: WindowSetattr() missing support for NUMBER_UNSIGNED. Solution: Add NUMBER_UNSIGNED, add more tests. Various fixes. (ZyX) Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, src/testdir/pythonx/failing.py, src/testdir/pythonx/failing_import.py, src/testdir/test86.in, src/testdir/test86.ok, src/testdir/test87.in, src/testdir/test87.ok, src/testdir/pythonx/topmodule/__init__.py, src/testdir/pythonx/topmodule/submodule/__init__.py, src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py, src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py *** ../vim-7.3.1235/src/if_py_both.h 2013-06-23 16:04:04.000000000 +0200 --- src/if_py_both.h 2013-06-23 16:27:37.000000000 +0200 *************** *** 1611,1617 **** ret = (rObj == Py_True); ! Py_DECREF(Py_True); return ret; } --- 1611,1617 ---- ret = (rObj == Py_True); ! Py_DECREF(rObj); return ret; } *************** *** 1910,1916 **** PyErr_FORMAT(PyExc_ValueError, N_("expected sequence element of size 2, " "but got sequence of size %d"), ! PySequence_Fast_GET_SIZE(fast)); return NULL; } --- 1910,1916 ---- PyErr_FORMAT(PyExc_ValueError, N_("expected sequence element of size 2, " "but got sequence of size %d"), ! (int) PySequence_Fast_GET_SIZE(fast)); return NULL; } *************** *** 2435,2440 **** --- 2435,2444 ---- clear_tv(&v); } Py_DECREF(iterator); + + if (PyErr_Occurred()) + return -1; + return 0; } *************** *** 3361,3367 **** long height; win_T *savewin; ! if (NumberToLong(valObject, &height, NUMBER_INT)) return -1; #ifdef FEAT_GUI --- 3365,3371 ---- long height; win_T *savewin; ! if (NumberToLong(valObject, &height, NUMBER_INT|NUMBER_UNSIGNED)) return -1; #ifdef FEAT_GUI *************** *** 3384,3390 **** long width; win_T *savewin; ! if (NumberToLong(valObject, &width, NUMBER_INT)) return -1; #ifdef FEAT_GUI --- 3388,3394 ---- long width; win_T *savewin; ! if (NumberToLong(valObject, &width, NUMBER_INT|NUMBER_UNSIGNED)) return -1; #ifdef FEAT_GUI *************** *** 3518,3524 **** char *str; char *save; PyObject *bytes = NULL; ! Py_ssize_t len; PyInt i; char *p; --- 3522,3528 ---- char *str; char *save; PyObject *bytes = NULL; ! Py_ssize_t len = 0; PyInt i; char *p; *************** *** 5483,5488 **** --- 5487,5493 ---- #endif else if (PyObject_HasAttrString(obj, "keys")) 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)) return convert_dl(obj, tv, pyseq_to_tv, lookup_dict); else if (PyMapping_Check(obj)) *************** *** 5930,5940 **** {"_Loader", (PyObject *)&LoaderType}, }; - typedef int (*object_adder)(PyObject *, const char *, PyObject *); - typedef PyObject *(*attr_getter)(PyObject *, const char *); - #define ADD_OBJECT(m, name, obj) \ ! if (add_object(m, name, obj)) \ return -1; #define ADD_CHECKED_OBJECT(m, name, obj) \ --- 5935,5942 ---- {"_Loader", (PyObject *)&LoaderType}, }; #define ADD_OBJECT(m, name, obj) \ ! if (PyModule_AddObject(m, name, obj)) \ return -1; #define ADD_CHECKED_OBJECT(m, name, obj) \ *************** *** 5946,5952 **** } static int ! populate_module(PyObject *m, object_adder add_object, attr_getter get_attr) { int i; PyObject *other_module; --- 5948,5954 ---- } static int ! populate_module(PyObject *m) { int i; PyObject *other_module; *************** *** 5990,5996 **** if (!(py_chdir = PyObject_GetAttrString(other_module, "chdir"))) return -1; ADD_OBJECT(m, "_chdir", py_chdir); ! if (!(attr = get_attr(m, "chdir"))) return -1; if (PyObject_SetAttrString(other_module, "chdir", attr)) { --- 5992,5998 ---- if (!(py_chdir = PyObject_GetAttrString(other_module, "chdir"))) return -1; ADD_OBJECT(m, "_chdir", py_chdir); ! if (!(attr = PyObject_GetAttrString(m, "chdir"))) return -1; if (PyObject_SetAttrString(other_module, "chdir", attr)) { *************** *** 6002,6008 **** if ((py_fchdir = PyObject_GetAttrString(other_module, "fchdir"))) { ADD_OBJECT(m, "_fchdir", py_fchdir); ! if (!(attr = get_attr(m, "fchdir"))) return -1; if (PyObject_SetAttrString(other_module, "fchdir", attr)) { --- 6004,6010 ---- if ((py_fchdir = PyObject_GetAttrString(other_module, "fchdir"))) { ADD_OBJECT(m, "_fchdir", py_fchdir); ! if (!(attr = PyObject_GetAttrString(m, "fchdir"))) return -1; if (PyObject_SetAttrString(other_module, "fchdir", attr)) { *** ../vim-7.3.1235/src/if_python3.c 2013-06-23 14:16:53.000000000 +0200 --- src/if_python3.c 2013-06-23 16:26:40.000000000 +0200 *************** *** 1623,1629 **** if ((vim_module = PyModule_Create(&vimmodule)) == NULL) return NULL; ! if (populate_module(vim_module, PyModule_AddObject, PyObject_GetAttrString)) return NULL; if (init_sys_path()) --- 1623,1629 ---- if ((vim_module = PyModule_Create(&vimmodule)) == NULL) return NULL; ! if (populate_module(vim_module)) return NULL; if (init_sys_path()) *** ../vim-7.3.1235/src/if_python.c 2013-06-23 14:16:53.000000000 +0200 --- src/if_python.c 2013-06-23 16:26:40.000000000 +0200 *************** *** 1404,1411 **** vim_module = Py_InitModule4("vim", VimMethods, (char *)NULL, (PyObject *)NULL, PYTHON_API_VERSION); ! if (populate_module(vim_module, PyModule_AddObject, ! PyObject_GetAttrString)) return -1; if (init_sys_path()) --- 1404,1410 ---- vim_module = Py_InitModule4("vim", VimMethods, (char *)NULL, (PyObject *)NULL, PYTHON_API_VERSION); ! if (populate_module(vim_module)) return -1; if (init_sys_path()) *** ../vim-7.3.1235/src/testdir/pythonx/failing.py 2013-06-23 16:35:21.000000000 +0200 --- src/testdir/pythonx/failing.py 2013-06-23 16:22:10.000000000 +0200 *************** *** 0 **** --- 1 ---- + raise NotImplementedError *** ../vim-7.3.1235/src/testdir/pythonx/failing_import.py 2013-06-23 16:35:21.000000000 +0200 --- src/testdir/pythonx/failing_import.py 2013-06-23 16:22:10.000000000 +0200 *************** *** 0 **** --- 1 ---- + raise ImportError *** ../vim-7.3.1235/src/testdir/test86.in 2013-06-23 14:37:00.000000000 +0200 --- src/testdir/test86.in 2013-06-23 16:26:40.000000000 +0200 *************** *** 216,221 **** --- 216,222 ---- :let messages=[] :delfunction DictNew py <<EOF + import sys d=vim.bindeval('{}') m=vim.bindeval('messages') def em(expr, g=globals(), l=locals()): *************** *** 297,303 **** :" threading :let l = [0] :py l=vim.bindeval('l') ! :py <<EOF import threading import time --- 298,304 ---- :" threading :let l = [0] :py l=vim.bindeval('l') ! py <<EOF import threading import time *************** *** 327,333 **** :" settrace :let l = [] :py l=vim.bindeval('l') ! :py <<EOF import sys def traceit(frame, event, arg): --- 328,334 ---- :" settrace :let l = [] :py l=vim.bindeval('l') ! py <<EOF import sys def traceit(frame, event, arg): *************** *** 342,350 **** EOF :py sys.settrace(traceit) :py trace_main() :py del traceit :py del trace_main - :py sys.settrace(None) :$put =string(l) :" :" Slice --- 343,351 ---- EOF :py sys.settrace(traceit) :py trace_main() + :py sys.settrace(None) :py del traceit :py del trace_main :$put =string(l) :" :" Slice *************** *** 880,889 **** if expr.find('None') > -1: msg = msg.replace('TypeError:(\'iteration over non-sequence\',)', 'TypeError:("\'NoneType\' object is not iterable",)') if expr == 'fd(self=[])': # HACK: PyMapping_Check changed meaning msg = msg.replace('AttributeError:(\'keys\',)', ! 'TypeError:(\'unable to convert object to vim dictionary\',)') cb.append(expr + ':' + msg) else: cb.append(expr + ':NOT FAILED') --- 881,896 ---- if expr.find('None') > -1: msg = msg.replace('TypeError:(\'iteration over non-sequence\',)', '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=[])': # HACK: PyMapping_Check changed meaning msg = msg.replace('AttributeError:(\'keys\',)', ! 'TypeError:(\'unable to convert list to vim dictionary\',)') cb.append(expr + ':' + msg) else: cb.append(expr + ':NOT FAILED') *************** *** 942,947 **** --- 949,955 ---- '{u"": 1}', # Same, but with unicode object 'FailingMapping()', # 'FailingMappingKey()', # + 'FailingNumber()', # )) def convertfrompymapping_test(expr): *************** *** 956,1021 **** 'FailingIterNext()', )) class FailingTrue(object): def __nonzero__(self): ! raise NotImplementedError class FailingIter(object): def __iter__(self): ! raise NotImplementedError class FailingIterNext(object): def __iter__(self): return self def next(self): ! raise NotImplementedError class FailingMappingKey(object): def __getitem__(self, item): ! raise NotImplementedError def keys(self): return list("abcH") class FailingMapping(object): def __getitem__(self): ! raise NotImplementedError def keys(self): ! raise NotImplementedError class FailingList(list): def __getitem__(self, idx): if i == 2: ! raise NotImplementedError else: return super(FailingList, self).__getitem__(idx) cb.append("> Output") cb.append(">> OutputSetattr") ee('del sys.stdout.softspace') ! ee('sys.stdout.softspace = []') ee('sys.stdout.attr = None') cb.append(">> OutputWrite") ee('sys.stdout.write(None)') cb.append(">> OutputWriteLines") ee('sys.stdout.writelines(None)') ee('sys.stdout.writelines([1])') ! #iter_test('sys.stdout.writelines(%s)') cb.append("> VimCommand") ! ee('vim.command(1)') #! Not checked: vim->python exceptions translating: checked later cb.append("> VimToPython") #! Not checked: everything: needs errors in internal python functions cb.append("> VimEval") ! ee('vim.eval(1)') #! Not checked: everything: needs errors in internal python functions cb.append("> VimEvalPy") ! ee('vim.bindeval(1)') #! Not checked: vim->python exceptions translating: checked later cb.append("> VimStrwidth") ! ee('vim.strwidth(1)') cb.append("> Dictionary") cb.append(">> DictionaryConstructor") ee('vim.Dictionary("abcI")') --- 964,1067 ---- '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): def __nonzero__(self): ! raise NotImplementedError('bool') class FailingIter(object): def __iter__(self): ! raise NotImplementedError('iter') class FailingIterNext(object): def __iter__(self): return self def next(self): ! raise NotImplementedError('next') class FailingMappingKey(object): def __getitem__(self, item): ! raise NotImplementedError('getitem:mappingkey') def keys(self): return list("abcH") class FailingMapping(object): def __getitem__(self): ! raise NotImplementedError('getitem:mapping') def keys(self): ! raise NotImplementedError('keys') class FailingList(list): def __getitem__(self, idx): if i == 2: ! raise NotImplementedError('getitem:list') else: 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(">> OutputSetattr") ee('del sys.stdout.softspace') ! number_test('sys.stdout.softspace = %s', unsigned=True) ! number_test('sys.stderr.softspace = %s', unsigned=True) ee('sys.stdout.attr = None') cb.append(">> OutputWrite") ee('sys.stdout.write(None)') cb.append(">> OutputWriteLines") ee('sys.stdout.writelines(None)') ee('sys.stdout.writelines([1])') ! iter_test('sys.stdout.writelines(%s)') cb.append("> VimCommand") ! stringtochars_test('vim.command(%s)') ! ee('vim.command("", 2)') #! Not checked: vim->python exceptions translating: checked later cb.append("> VimToPython") #! Not checked: everything: needs errors in internal python functions cb.append("> VimEval") ! stringtochars_test('vim.eval(%s)') ! ee('vim.eval("", FailingTrue())') #! Not checked: everything: needs errors in internal python functions cb.append("> VimEvalPy") ! stringtochars_test('vim.bindeval(%s)') ! ee('vim.eval("", 2)') #! Not checked: vim->python exceptions translating: checked later cb.append("> VimStrwidth") ! 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(">> DictionaryConstructor") ee('vim.Dictionary("abcI")') *************** *** 1043,1049 **** cb.append(">>> iter") ee('d.update(FailingMapping())') ee('d.update([FailingIterNext()])') ! #iter_test('d.update(%s)') convertfrompyobject_test('d.update(%s)') stringtochars_test('d.update(((%s, 0),))') convertfrompyobject_test('d.update((("a", %s),))') --- 1089,1095 ---- cb.append(">>> iter") ee('d.update(FailingMapping())') ee('d.update([FailingIterNext()])') ! iter_test('d.update(%s)') convertfrompyobject_test('d.update(%s)') stringtochars_test('d.update(((%s, 0),))') convertfrompyobject_test('d.update((("a", %s),))') *************** *** 1055,1061 **** cb.append(">> ListConstructor") ee('vim.List(1, 2)') ee('vim.List(a=1)') ! #iter_test('vim.List(%s)') convertfrompyobject_test('vim.List([%s])') cb.append(">> ListItem") ee('l[1000]') --- 1101,1107 ---- cb.append(">> ListConstructor") ee('vim.List(1, 2)') ee('vim.List(a=1)') ! iter_test('vim.List(%s)') convertfrompyobject_test('vim.List([%s])') cb.append(">> ListItem") ee('l[1000]') *************** *** 1064,1073 **** ee('l[1000] = 3') cb.append(">> ListAssSlice") ee('ll[1:100] = "abcJ"') ! #iter_test('l[:] = %s') convertfrompyobject_test('l[:] = [%s]') cb.append(">> ListConcatInPlace") ! #iter_test('l.extend(%s)') convertfrompyobject_test('l.extend([%s])') cb.append(">> ListSetattr") ee('del l.locked') --- 1110,1119 ---- ee('l[1000] = 3') cb.append(">> ListAssSlice") ee('ll[1:100] = "abcJ"') ! iter_test('l[:] = %s') convertfrompyobject_test('l[:] = [%s]') cb.append(">> ListConcatInPlace") ! iter_test('l.extend(%s)') convertfrompyobject_test('l.extend([%s])') cb.append(">> ListSetattr") ee('del l.locked') *************** *** 1094,1107 **** ee('vim.current.window.buffer = 0') ee('vim.current.window.cursor = (100000000, 100000000)') ee('vim.current.window.cursor = True') ! ee('vim.current.window.height = "abcK"') ! ee('vim.current.window.width = "abcL"') ee('vim.current.window.xxxxxx = True') cb.append("> WinList") cb.append(">> WinListItem") ee('vim.windows[1000]') cb.append("> Buffer") cb.append(">> StringToLine (indirect)") ee('vim.current.buffer[0] = "\\na"') cb.append(">> SetBufferLine (indirect)") ee('vim.current.buffer[0] = True') --- 1140,1154 ---- ee('vim.current.window.buffer = 0') ee('vim.current.window.cursor = (100000000, 100000000)') ee('vim.current.window.cursor = True') ! number_test('vim.current.window.height = %s', unsigned=True) ! number_test('vim.current.window.width = %s', unsigned=True) ee('vim.current.window.xxxxxx = True') cb.append("> WinList") cb.append(">> WinListItem") ee('vim.windows[1000]') cb.append("> Buffer") cb.append(">> StringToLine (indirect)") + ee('vim.current.buffer[0] = u"\\na"') ee('vim.current.buffer[0] = "\\na"') cb.append(">> SetBufferLine (indirect)") ee('vim.current.buffer[0] = True') *************** *** 1129,1136 **** ee('vim.current.buffer.range(1, 2, 3)') cb.append("> BufMap") cb.append(">> BufMapItem") - ee('vim.buffers[None]') ee('vim.buffers[100000000]') cb.append("> Current") cb.append(">> CurrentGetattr") ee('vim.current.xxx') --- 1176,1183 ---- ee('vim.current.buffer.range(1, 2, 3)') cb.append("> BufMap") cb.append(">> BufMapItem") ee('vim.buffers[100000000]') + number_test('vim.buffers[%s]', natural=True) cb.append("> Current") cb.append(">> CurrentGetattr") ee('vim.current.xxx') *************** *** 1154,1165 **** --- 1201,1216 ---- del convertfrompyobject_test del convertfrompymapping_test del iter_test + del number_test del FailingTrue del FailingIter del FailingIterNext del FailingMapping del FailingMappingKey del FailingList + del NoArgsCall + del FailingCall + del FailingNumber EOF :delfunction F :" *************** *** 1168,1173 **** --- 1219,1234 ---- sys.path.insert(0, os.path.join(os.getcwd(), 'python_before')) sys.path.append(os.path.join(os.getcwd(), 'python_after')) 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 modulex import ddir cb.append(d + ',' + ddir) *************** *** 1175,1184 **** --- 1236,1254 ---- cb.append(before.dir) import after 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 after del d del ddir + del tm + del tms + del tmsss EOF :" :" Test exceptions *************** *** 1232,1237 **** --- 1302,1308 ---- :call garbagecollect(1) :" :/^start:/,$wq! test.out + :" vim: et ts=4 isk-=\: :call getchar() ENDTEST *** ../vim-7.3.1235/src/testdir/test86.ok 2013-06-23 14:37:00.000000000 +0200 --- src/testdir/test86.ok 2013-06-23 16:29:45.000000000 +0200 *************** *** 441,468 **** > Output >> OutputSetattr del sys.stdout.softspace:AttributeError:("can't delete OutputObject attributes",) sys.stdout.softspace = []:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',) sys.stdout.attr = None:AttributeError:('invalid attribute: attr',) >> OutputWrite sys.stdout.write(None):TypeError:('coercing to Unicode: need string or buffer, NoneType found',) >> OutputWriteLines sys.stdout.writelines(None):TypeError:("'NoneType' object is not iterable",) sys.stdout.writelines([1]):TypeError:('coercing to Unicode: need string or buffer, int found',) > VimCommand vim.command(1):TypeError:('expected str() or unicode() instance, but got int',) > VimToPython > VimEval vim.eval(1):TypeError:('expected str() or unicode() instance, but got int',) > VimEvalPy vim.bindeval(1):TypeError:('expected str() or unicode() instance, but got int',) > VimStrwidth vim.strwidth(1):TypeError:('expected str() or unicode() instance, but got int',) > Dictionary >> DictionaryConstructor vim.Dictionary("abcI"):ValueError:('expected sequence element of size 2, but got sequence of size 1',) >> DictionarySetattr del d.locked:AttributeError:('cannot delete vim.Dictionary attributes',) ! d.locked = FailingTrue():NotImplementedError:() vim.vvars.locked = False:TypeError:('cannot modify fixed dictionary',) d.scope = True:AttributeError:('cannot set attribute scope',) d.xxx = True:AttributeError:('cannot set attribute xxx',) --- 441,509 ---- > Output >> OutputSetattr 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 = 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',) >> OutputWrite sys.stdout.write(None):TypeError:('coercing to Unicode: need string or buffer, NoneType found',) >> OutputWriteLines sys.stdout.writelines(None):TypeError:("'NoneType' object is not iterable",) 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 + >>> Testing StringToChars using vim.command(%s) 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 > VimEval + >>> Testing StringToChars using vim.eval(%s) 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 + >>> Testing StringToChars using vim.bindeval(%s) 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 + >>> Testing StringToChars using vim.strwidth(%s) 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 >> DictionaryConstructor vim.Dictionary("abcI"):ValueError:('expected sequence element of size 2, but got sequence of size 1',) >> DictionarySetattr del d.locked:AttributeError:('cannot delete vim.Dictionary attributes',) ! d.locked = FailingTrue():NotImplementedError:('bool',) vim.vvars.locked = False:TypeError:('cannot modify fixed dictionary',) d.scope = True:AttributeError:('cannot set attribute scope',) d.xxx = True:AttributeError:('cannot set attribute xxx',) *************** *** 501,514 **** <<< Finished >>> Testing *Iter* using d["a"] = {"abcF" : %s} d["a"] = {"abcF" : FailingIter()}:TypeError:('unable to convert FailingIter to vim structure',) ! d["a"] = {"abcF" : FailingIterNext()}:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s} 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" : {u"": 1}}:ValueError:('empty keys are not allowed',) ! d["a"] = {"abcF" : FailingMapping()}:NotImplementedError:() ! d["a"] = {"abcF" : FailingMappingKey()}:NotImplementedError:() <<< Finished >>> Testing StringToChars using d["a"] = Mapping({%s : 1}) d["a"] = Mapping({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) --- 542,556 ---- <<< Finished >>> Testing *Iter* using d["a"] = {"abcF" : %s} d["a"] = {"abcF" : FailingIter()}:TypeError:('unable to convert FailingIter to vim structure',) ! d["a"] = {"abcF" : FailingIterNext()}:NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s} 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" : {u"": 1}}:ValueError:('empty keys are not allowed',) ! d["a"] = {"abcF" : FailingMapping()}:NotImplementedError:('keys',) ! d["a"] = {"abcF" : FailingMappingKey()}:NotImplementedError:('getitem:mappingkey',) ! d["a"] = {"abcF" : FailingNumber()}:TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({%s : 1}) d["a"] = Mapping({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) *************** *** 527,557 **** <<< Finished >>> 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" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> 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" : {"": 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" : FailingMappingKey()}):NotImplementedError:() <<< Finished >>> Testing *Iter* using d["a"] = %s d["a"] = FailingIter():TypeError:('unable to convert FailingIter to vim structure',) ! d["a"] = FailingIterNext():NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d["a"] = %s d["a"] = None:TypeError:('unable to convert NoneType to vim structure',) d["a"] = {"": 1}:ValueError:('empty keys are not allowed',) d["a"] = {u"": 1}:ValueError:('empty keys are not allowed',) ! d["a"] = FailingMapping():NotImplementedError:() ! d["a"] = FailingMappingKey():NotImplementedError:() <<< Finished >> DictionaryUpdate >>> kwargs >>> iter ! d.update(FailingMapping()):NotImplementedError:() ! d.update([FailingIterNext()]):NotImplementedError:() >>> Testing StringToChars using d.update({%s : 1}) d.update({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) d.update({u"\0" : 1}):TypeError:('expected string without null bytes',) --- 569,605 ---- <<< Finished >>> 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" : FailingIterNext()}):NotImplementedError:('next',) <<< Finished >>> 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" : {"": 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:('keys',) ! d["a"] = Mapping({"abcG" : FailingMappingKey()}):NotImplementedError:('getitem:mappingkey',) ! d["a"] = Mapping({"abcG" : FailingNumber()}):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing *Iter* using d["a"] = %s d["a"] = FailingIter():TypeError:('unable to convert FailingIter to vim structure',) ! d["a"] = FailingIterNext():NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = %s d["a"] = None:TypeError:('unable to convert NoneType to vim structure',) d["a"] = {"": 1}:ValueError:('empty keys are not allowed',) d["a"] = {u"": 1}:ValueError:('empty keys are not allowed',) ! d["a"] = FailingMapping():NotImplementedError:('keys',) ! d["a"] = FailingMappingKey():NotImplementedError:('getitem:mappingkey',) ! d["a"] = FailingNumber():TypeError:('long() argument must be a string or a number',) <<< Finished >> DictionaryUpdate >>> kwargs >>> iter ! d.update(FailingMapping()):NotImplementedError:('keys',) ! 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}) d.update({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) d.update({u"\0" : 1}):TypeError:('expected string without null bytes',) *************** *** 569,582 **** <<< Finished >>> Testing *Iter* using d.update({"abcF" : %s}) d.update({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) ! d.update({"abcF" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update({"abcF" : %s}) 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" : {u"": 1}}):ValueError:('empty keys are not allowed',) ! d.update({"abcF" : FailingMapping()}):NotImplementedError:() ! d.update({"abcF" : FailingMappingKey()}):NotImplementedError:() <<< Finished >>> Testing StringToChars using d.update(Mapping({%s : 1})) d.update(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) --- 617,631 ---- <<< Finished >>> Testing *Iter* using d.update({"abcF" : %s}) d.update({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) ! d.update({"abcF" : FailingIterNext()}):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using d.update({"abcF" : %s}) 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" : {u"": 1}}):ValueError:('empty keys are not allowed',) ! d.update({"abcF" : FailingMapping()}):NotImplementedError:('keys',) ! d.update({"abcF" : FailingMappingKey()}):NotImplementedError:('getitem:mappingkey',) ! d.update({"abcF" : FailingNumber()}):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing StringToChars using d.update(Mapping({%s : 1})) d.update(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) *************** *** 595,619 **** <<< Finished >>> 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" : FailingIterNext()})):NotImplementedError:() <<< Finished >>> 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" : {"": 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" : FailingMappingKey()})):NotImplementedError:() <<< Finished >>> Testing *Iter* using d.update(%s) ! d.update(FailingIter()):NotImplementedError:() ! d.update(FailingIterNext()):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update(%s) d.update(None):TypeError:("'NoneType' object is not iterable",) d.update({"": 1}):ValueError:('empty keys are not allowed',) d.update({u"": 1}):ValueError:('empty keys are not allowed',) ! d.update(FailingMapping()):NotImplementedError:() ! d.update(FailingMappingKey()):NotImplementedError:() <<< Finished >>> Testing StringToChars using d.update(((%s, 0),)) d.update(((1, 0),)):TypeError:('expected str() or unicode() instance, but got int',) --- 644,670 ---- <<< Finished >>> 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" : FailingIterNext()})):NotImplementedError:('next',) <<< Finished >>> 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" : {"": 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:('keys',) ! d.update(Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:('getitem:mappingkey',) ! d.update(Mapping({"abcG" : FailingNumber()})):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing *Iter* using d.update(%s) ! d.update(FailingIter()):NotImplementedError:('iter',) ! d.update(FailingIterNext()):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using d.update(%s) d.update(None):TypeError:("'NoneType' object is not iterable",) d.update({"": 1}):ValueError:('empty keys are not allowed',) d.update({u"": 1}):ValueError:('empty keys are not allowed',) ! d.update(FailingMapping()):NotImplementedError:('keys',) ! d.update(FailingMappingKey()):NotImplementedError:('getitem:mappingkey',) ! d.update(FailingNumber()):TypeError:("'FailingNumber' object is not iterable",) <<< Finished >>> Testing StringToChars using d.update(((%s, 0),)) d.update(((1, 0),)):TypeError:('expected str() or unicode() instance, but got int',) *************** *** 637,650 **** <<< Finished >>> 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" : FailingIterNext()}),)):NotImplementedError:() <<< Finished >>> 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" : {"": 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" : FailingMappingKey()}),)):NotImplementedError:() <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),)) d.update((("a", Mapping({1 : 1})),)):TypeError:('expected str() or unicode() instance, but got int',) --- 688,702 ---- <<< Finished >>> 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" : FailingIterNext()}),)):NotImplementedError:('next',) <<< Finished >>> 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" : {"": 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:('keys',) ! d.update((("a", {"abcF" : FailingMappingKey()}),)):NotImplementedError:('getitem:mappingkey',) ! d.update((("a", {"abcF" : FailingNumber()}),)):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),)) d.update((("a", Mapping({1 : 1})),)):TypeError:('expected str() or unicode() instance, but got int',) *************** *** 663,687 **** <<< Finished >>> 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" : FailingIterNext()})),)):NotImplementedError:() <<< Finished >>> 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" : {"": 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" : FailingMappingKey()})),)):NotImplementedError:() <<< Finished >>> Testing *Iter* using d.update((("a", %s),)) d.update((("a", FailingIter()),)):TypeError:('unable to convert FailingIter to vim structure',) ! d.update((("a", FailingIterNext()),)):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", %s),)) 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", {u"": 1}),)):ValueError:('empty keys are not allowed',) ! d.update((("a", FailingMapping()),)):NotImplementedError:() ! d.update((("a", FailingMappingKey()),)):NotImplementedError:() <<< Finished >> DictionaryPopItem d.popitem(1, 2):TypeError:('popitem() takes no arguments (2 given)',) --- 715,741 ---- <<< Finished >>> 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" : FailingIterNext()})),)):NotImplementedError:('next',) <<< Finished >>> 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" : {"": 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:('keys',) ! 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 >>> Testing *Iter* using d.update((("a", %s),)) d.update((("a", FailingIter()),)):TypeError:('unable to convert FailingIter to vim structure',) ! d.update((("a", FailingIterNext()),)):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", %s),)) 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", {u"": 1}),)):ValueError:('empty keys are not allowed',) ! d.update((("a", FailingMapping()),)):NotImplementedError:('keys',) ! d.update((("a", FailingMappingKey()),)):NotImplementedError:('getitem:mappingkey',) ! d.update((("a", FailingNumber()),)):TypeError:('long() argument must be a string or a number',) <<< Finished >> DictionaryPopItem d.popitem(1, 2):TypeError:('popitem() takes no arguments (2 given)',) *************** *** 691,696 **** --- 745,754 ---- >> ListConstructor 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',) + >>> Testing *Iter* using vim.List(%s) + vim.List(FailingIter()):NotImplementedError:('iter',) + vim.List(FailingIterNext()):NotImplementedError:('next',) + <<< Finished >>> Testing StringToChars using vim.List([{%s : 1}]) vim.List([{1 : 1}]):TypeError:('expected str() or unicode() instance, but got int',) vim.List([{u"\0" : 1}]):TypeError:('expected string without null bytes',) *************** *** 708,721 **** <<< Finished >>> Testing *Iter* using vim.List([{"abcF" : %s}]) vim.List([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',) ! vim.List([{"abcF" : FailingIterNext()}]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}]) 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" : {u"": 1}}]):ValueError:('empty keys are not allowed',) ! vim.List([{"abcF" : FailingMapping()}]):NotImplementedError:() ! vim.List([{"abcF" : FailingMappingKey()}]):NotImplementedError:() <<< Finished >>> Testing StringToChars using vim.List([Mapping({%s : 1})]) vim.List([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',) --- 766,780 ---- <<< Finished >>> Testing *Iter* using vim.List([{"abcF" : %s}]) vim.List([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',) ! vim.List([{"abcF" : FailingIterNext()}]):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}]) 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" : {u"": 1}}]):ValueError:('empty keys are not allowed',) ! vim.List([{"abcF" : FailingMapping()}]):NotImplementedError:('keys',) ! vim.List([{"abcF" : FailingMappingKey()}]):NotImplementedError:('getitem:mappingkey',) ! vim.List([{"abcF" : FailingNumber()}]):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing StringToChars using vim.List([Mapping({%s : 1})]) vim.List([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',) *************** *** 734,758 **** <<< Finished >>> 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" : FailingIterNext()})]):NotImplementedError:() <<< Finished >>> 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" : {"": 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" : FailingMappingKey()})]):NotImplementedError:() <<< Finished >>> Testing *Iter* using vim.List([%s]) vim.List([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',) ! vim.List([FailingIterNext()]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using vim.List([%s]) vim.List([None]):TypeError:('unable to convert NoneType to vim structure',) vim.List([{"": 1}]):ValueError:('empty keys are not allowed',) vim.List([{u"": 1}]):ValueError:('empty keys are not allowed',) ! vim.List([FailingMapping()]):NotImplementedError:() ! vim.List([FailingMappingKey()]):NotImplementedError:() <<< Finished >> ListItem l[1000]:IndexError:('list index out of range',) --- 793,819 ---- <<< Finished >>> 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" : FailingIterNext()})]):NotImplementedError:('next',) <<< Finished >>> 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" : {"": 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:('keys',) ! vim.List([Mapping({"abcG" : FailingMappingKey()})]):NotImplementedError:('getitem:mappingkey',) ! vim.List([Mapping({"abcG" : FailingNumber()})]):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing *Iter* using vim.List([%s]) vim.List([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',) ! vim.List([FailingIterNext()]):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using vim.List([%s]) vim.List([None]):TypeError:('unable to convert NoneType to vim structure',) vim.List([{"": 1}]):ValueError:('empty keys are not allowed',) vim.List([{u"": 1}]):ValueError:('empty keys are not allowed',) ! vim.List([FailingMapping()]):NotImplementedError:('keys',) ! vim.List([FailingMappingKey()]):NotImplementedError:('getitem:mappingkey',) ! vim.List([FailingNumber()]):TypeError:('long() argument must be a string or a number',) <<< Finished >> ListItem l[1000]:IndexError:('list index out of range',) *************** *** 761,766 **** --- 822,831 ---- l[1000] = 3:IndexError:('list index out of range',) >> ListAssSlice 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}] l[:] = [{1 : 1}]:TypeError:('expected str() or unicode() instance, but got int',) l[:] = [{u"\0" : 1}]:TypeError:('expected string without null bytes',) *************** *** 778,791 **** <<< Finished >>> Testing *Iter* using l[:] = [{"abcF" : %s}] l[:] = [{"abcF" : FailingIter()}]:TypeError:('unable to convert FailingIter to vim structure',) ! l[:] = [{"abcF" : FailingIterNext()}]:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}] l[:] = [{"abcF" : None}]:TypeError:('unable to convert NoneType to vim structure',) l[:] = [{"abcF" : {"": 1}}]:ValueError:('empty keys are not allowed',) l[:] = [{"abcF" : {u"": 1}}]:ValueError:('empty keys are not allowed',) ! l[:] = [{"abcF" : FailingMapping()}]:NotImplementedError:() ! l[:] = [{"abcF" : FailingMappingKey()}]:NotImplementedError:() <<< Finished >>> Testing StringToChars using l[:] = [Mapping({%s : 1})] l[:] = [Mapping({1 : 1})]:TypeError:('expected str() or unicode() instance, but got int',) --- 843,857 ---- <<< Finished >>> Testing *Iter* using l[:] = [{"abcF" : %s}] l[:] = [{"abcF" : FailingIter()}]:TypeError:('unable to convert FailingIter to vim structure',) ! l[:] = [{"abcF" : FailingIterNext()}]:NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}] l[:] = [{"abcF" : None}]:TypeError:('unable to convert NoneType to vim structure',) l[:] = [{"abcF" : {"": 1}}]:ValueError:('empty keys are not allowed',) l[:] = [{"abcF" : {u"": 1}}]:ValueError:('empty keys are not allowed',) ! l[:] = [{"abcF" : FailingMapping()}]:NotImplementedError:('keys',) ! l[:] = [{"abcF" : FailingMappingKey()}]:NotImplementedError:('getitem:mappingkey',) ! l[:] = [{"abcF" : FailingNumber()}]:TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({%s : 1})] l[:] = [Mapping({1 : 1})]:TypeError:('expected str() or unicode() instance, but got int',) *************** *** 804,830 **** <<< Finished >>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})] l[:] = [Mapping({"abcG" : FailingIter()})]:TypeError:('unable to convert FailingIter to vim structure',) ! l[:] = [Mapping({"abcG" : FailingIterNext()})]:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})] 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" : {u"": 1}})]:ValueError:('empty keys are not allowed',) ! l[:] = [Mapping({"abcG" : FailingMapping()})]:NotImplementedError:() ! l[:] = [Mapping({"abcG" : FailingMappingKey()})]:NotImplementedError:() <<< Finished >>> Testing *Iter* using l[:] = [%s] l[:] = [FailingIter()]:TypeError:('unable to convert FailingIter to vim structure',) ! l[:] = [FailingIterNext()]:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l[:] = [%s] l[:] = [None]:TypeError:('unable to convert NoneType to vim structure',) l[:] = [{"": 1}]:ValueError:('empty keys are not allowed',) l[:] = [{u"": 1}]:ValueError:('empty keys are not allowed',) ! l[:] = [FailingMapping()]:NotImplementedError:() ! l[:] = [FailingMappingKey()]:NotImplementedError:() <<< Finished >> ListConcatInPlace >>> Testing StringToChars using l.extend([{%s : 1}]) l.extend([{1 : 1}]):TypeError:('expected str() or unicode() instance, but got int',) l.extend([{u"\0" : 1}]):TypeError:('expected string without null bytes',) --- 870,902 ---- <<< Finished >>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})] l[:] = [Mapping({"abcG" : FailingIter()})]:TypeError:('unable to convert FailingIter to vim structure',) ! l[:] = [Mapping({"abcG" : FailingIterNext()})]:NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})] 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" : {u"": 1}})]:ValueError:('empty keys are not allowed',) ! l[:] = [Mapping({"abcG" : FailingMapping()})]:NotImplementedError:('keys',) ! l[:] = [Mapping({"abcG" : FailingMappingKey()})]:NotImplementedError:('getitem:mappingkey',) ! l[:] = [Mapping({"abcG" : FailingNumber()})]:TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing *Iter* using l[:] = [%s] l[:] = [FailingIter()]:TypeError:('unable to convert FailingIter to vim structure',) ! l[:] = [FailingIterNext()]:NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [%s] l[:] = [None]:TypeError:('unable to convert NoneType to vim structure',) l[:] = [{"": 1}]:ValueError:('empty keys are not allowed',) l[:] = [{u"": 1}]:ValueError:('empty keys are not allowed',) ! l[:] = [FailingMapping()]:NotImplementedError:('keys',) ! l[:] = [FailingMappingKey()]:NotImplementedError:('getitem:mappingkey',) ! l[:] = [FailingNumber()]:TypeError:('long() argument must be a string or a number',) <<< Finished >> 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}]) l.extend([{1 : 1}]):TypeError:('expected str() or unicode() instance, but got int',) l.extend([{u"\0" : 1}]):TypeError:('expected string without null bytes',) *************** *** 842,855 **** <<< Finished >>> Testing *Iter* using l.extend([{"abcF" : %s}]) l.extend([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',) ! l.extend([{"abcF" : FailingIterNext()}]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}]) 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" : {u"": 1}}]):ValueError:('empty keys are not allowed',) ! l.extend([{"abcF" : FailingMapping()}]):NotImplementedError:() ! l.extend([{"abcF" : FailingMappingKey()}]):NotImplementedError:() <<< Finished >>> Testing StringToChars using l.extend([Mapping({%s : 1})]) l.extend([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',) --- 914,928 ---- <<< Finished >>> Testing *Iter* using l.extend([{"abcF" : %s}]) l.extend([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',) ! l.extend([{"abcF" : FailingIterNext()}]):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}]) 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" : {u"": 1}}]):ValueError:('empty keys are not allowed',) ! l.extend([{"abcF" : FailingMapping()}]):NotImplementedError:('keys',) ! l.extend([{"abcF" : FailingMappingKey()}]):NotImplementedError:('getitem:mappingkey',) ! l.extend([{"abcF" : FailingNumber()}]):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing StringToChars using l.extend([Mapping({%s : 1})]) l.extend([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',) *************** *** 868,896 **** <<< Finished >>> 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" : FailingIterNext()})]):NotImplementedError:() <<< Finished >>> 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" : {"": 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" : FailingMappingKey()})]):NotImplementedError:() <<< Finished >>> Testing *Iter* using l.extend([%s]) l.extend([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',) ! l.extend([FailingIterNext()]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l.extend([%s]) l.extend([None]):TypeError:('unable to convert NoneType to vim structure',) l.extend([{"": 1}]):ValueError:('empty keys are not allowed',) l.extend([{u"": 1}]):ValueError:('empty keys are not allowed',) ! l.extend([FailingMapping()]):NotImplementedError:() ! l.extend([FailingMappingKey()]):NotImplementedError:() <<< Finished >> ListSetattr del l.locked:AttributeError:('cannot delete vim.List attributes',) ! l.locked = FailingTrue():NotImplementedError:() l.xxx = True:AttributeError:('cannot set attribute xxx',) > Function >> FunctionConstructor --- 941,971 ---- <<< Finished >>> 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" : FailingIterNext()})]):NotImplementedError:('next',) <<< Finished >>> 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" : {"": 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:('keys',) ! l.extend([Mapping({"abcG" : FailingMappingKey()})]):NotImplementedError:('getitem:mappingkey',) ! l.extend([Mapping({"abcG" : FailingNumber()})]):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing *Iter* using l.extend([%s]) l.extend([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',) ! l.extend([FailingIterNext()]):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using l.extend([%s]) l.extend([None]):TypeError:('unable to convert NoneType to vim structure',) l.extend([{"": 1}]):ValueError:('empty keys are not allowed',) l.extend([{u"": 1}]):ValueError:('empty keys are not allowed',) ! l.extend([FailingMapping()]):NotImplementedError:('keys',) ! l.extend([FailingMappingKey()]):NotImplementedError:('getitem:mappingkey',) ! l.extend([FailingNumber()]):TypeError:('long() argument must be a string or a number',) <<< Finished >> ListSetattr del l.locked:AttributeError:('cannot delete vim.List attributes',) ! l.locked = FailingTrue():NotImplementedError:('bool',) l.xxx = True:AttributeError:('cannot set attribute xxx',) > Function >> FunctionConstructor *************** *** 915,928 **** <<< Finished >>> Testing *Iter* using f({"abcF" : %s}) f({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) ! f({"abcF" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using f({"abcF" : %s}) f({"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',) f({"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',) f({"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',) ! f({"abcF" : FailingMapping()}):NotImplementedError:() ! f({"abcF" : FailingMappingKey()}):NotImplementedError:() <<< Finished >>> Testing StringToChars using f(Mapping({%s : 1})) f(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) --- 990,1004 ---- <<< Finished >>> Testing *Iter* using f({"abcF" : %s}) f({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) ! f({"abcF" : FailingIterNext()}):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using f({"abcF" : %s}) f({"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',) f({"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',) f({"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',) ! f({"abcF" : FailingMapping()}):NotImplementedError:('keys',) ! f({"abcF" : FailingMappingKey()}):NotImplementedError:('getitem:mappingkey',) ! f({"abcF" : FailingNumber()}):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing StringToChars using f(Mapping({%s : 1})) f(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) *************** *** 941,965 **** <<< Finished >>> Testing *Iter* using f(Mapping({"abcG" : %s})) f(Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',) ! f(Mapping({"abcG" : FailingIterNext()})):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s})) 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" : {u"": 1}})):ValueError:('empty keys are not allowed',) ! f(Mapping({"abcG" : FailingMapping()})):NotImplementedError:() ! f(Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:() <<< Finished >>> Testing *Iter* using f(%s) f(FailingIter()):TypeError:('unable to convert FailingIter to vim structure',) ! f(FailingIterNext()):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using f(%s) f(None):TypeError:('unable to convert NoneType to vim structure',) f({"": 1}):ValueError:('empty keys are not allowed',) f({u"": 1}):ValueError:('empty keys are not allowed',) ! f(FailingMapping()):NotImplementedError:() ! f(FailingMappingKey()):NotImplementedError:() <<< Finished >>> Testing StringToChars using fd(self={%s : 1}) fd(self={1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) --- 1017,1043 ---- <<< Finished >>> Testing *Iter* using f(Mapping({"abcG" : %s})) f(Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',) ! f(Mapping({"abcG" : FailingIterNext()})):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s})) 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" : {u"": 1}})):ValueError:('empty keys are not allowed',) ! f(Mapping({"abcG" : FailingMapping()})):NotImplementedError:('keys',) ! f(Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:('getitem:mappingkey',) ! f(Mapping({"abcG" : FailingNumber()})):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing *Iter* using f(%s) f(FailingIter()):TypeError:('unable to convert FailingIter to vim structure',) ! f(FailingIterNext()):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using f(%s) f(None):TypeError:('unable to convert NoneType to vim structure',) f({"": 1}):ValueError:('empty keys are not allowed',) f({u"": 1}):ValueError:('empty keys are not allowed',) ! f(FailingMapping()):NotImplementedError:('keys',) ! f(FailingMappingKey()):NotImplementedError:('getitem:mappingkey',) ! f(FailingNumber()):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing StringToChars using fd(self={%s : 1}) fd(self={1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) *************** *** 978,991 **** <<< Finished >>> Testing *Iter* using fd(self={"abcF" : %s}) fd(self={"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) ! fd(self={"abcF" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using fd(self={"abcF" : %s}) 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" : {u"": 1}}):ValueError:('empty keys are not allowed',) ! fd(self={"abcF" : FailingMapping()}):NotImplementedError:() ! fd(self={"abcF" : FailingMappingKey()}):NotImplementedError:() <<< Finished >>> Testing StringToChars using fd(self=Mapping({%s : 1})) fd(self=Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) --- 1056,1070 ---- <<< Finished >>> Testing *Iter* using fd(self={"abcF" : %s}) fd(self={"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) ! fd(self={"abcF" : FailingIterNext()}):NotImplementedError:('next',) <<< Finished >>> Testing ConvertFromPyObject using fd(self={"abcF" : %s}) 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" : {u"": 1}}):ValueError:('empty keys are not allowed',) ! fd(self={"abcF" : FailingMapping()}):NotImplementedError:('keys',) ! fd(self={"abcF" : FailingMappingKey()}):NotImplementedError:('getitem:mappingkey',) ! fd(self={"abcF" : FailingNumber()}):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing StringToChars using fd(self=Mapping({%s : 1})) fd(self=Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) *************** *** 1004,1017 **** <<< Finished >>> 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" : FailingIterNext()})):NotImplementedError:() <<< Finished >>> 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" : {"": 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" : FailingMappingKey()})):NotImplementedError:() <<< Finished >>> Testing *Iter* using fd(self=%s) fd(self=FailingIter()):TypeError:('unable to convert FailingIter to vim dictionary',) --- 1083,1097 ---- <<< Finished >>> 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" : FailingIterNext()})):NotImplementedError:('next',) <<< Finished >>> 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" : {"": 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:('keys',) ! fd(self=Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:('getitem:mappingkey',) ! fd(self=Mapping({"abcG" : FailingNumber()})):TypeError:('long() argument must be a string or a number',) <<< Finished >>> Testing *Iter* using fd(self=%s) fd(self=FailingIter()):TypeError:('unable to convert FailingIter to vim dictionary',) *************** *** 1021,1028 **** fd(self=None):TypeError:('unable to convert NoneType to vim dictionary',) fd(self={"": 1}):ValueError:('empty keys are not allowed',) fd(self={u"": 1}):ValueError:('empty keys are not allowed',) ! fd(self=FailingMapping()):NotImplementedError:() ! fd(self=FailingMappingKey()):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyMapping using fd(self=%s) fd(self=[]):TypeError:('unable to convert list to vim dictionary',) --- 1101,1109 ---- fd(self=None):TypeError:('unable to convert NoneType to vim dictionary',) fd(self={"": 1}):ValueError:('empty keys are not allowed',) fd(self={u"": 1}):ValueError:('empty keys are not allowed',) ! fd(self=FailingMapping()):NotImplementedError:('keys',) ! fd(self=FailingMappingKey()):NotImplementedError:('getitem:mappingkey',) ! fd(self=FailingNumber()):TypeError:('unable to convert FailingNumber to vim dictionary',) <<< Finished >>> Testing ConvertFromPyMapping using fd(self=%s) fd(self=[]):TypeError:('unable to convert list to vim dictionary',) *************** *** 1040,1053 **** vim.current.window.buffer = 0:TypeError:('readonly attribute: 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.height = "abcK":TypeError:('expected int(), long() or something supporting coercing to long(), but got str',) ! vim.current.window.width = "abcL":TypeError:('expected int(), long() or something supporting coercing to long(), but got str',) vim.current.window.xxxxxx = True:AttributeError:('xxxxxx',) > WinList >> WinListItem vim.windows[1000]:IndexError:('no such window',) > Buffer >> StringToLine (indirect) vim.current.buffer[0] = "\na":error:('string cannot contain newlines',) >> SetBufferLine (indirect) vim.current.buffer[0] = True:TypeError:('bad argument type for built-in operation',) --- 1121,1143 ---- vim.current.window.buffer = 0:TypeError:('readonly attribute: 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',) ! >>> Testing NumberToLong using vim.current.window.height = %s ! 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',) > WinList >> WinListItem vim.windows[1000]:IndexError:('no such window',) > Buffer >> StringToLine (indirect) + vim.current.buffer[0] = u"\na":error:('string cannot contain newlines',) vim.current.buffer[0] = "\na":error:('string cannot contain newlines',) >> SetBufferLine (indirect) vim.current.buffer[0] = True:TypeError:('bad argument type for built-in operation',) *************** *** 1075,1082 **** vim.current.buffer.range(1, 2, 3):TypeError:('function takes exactly 2 arguments (3 given)',) > BufMap >> BufMapItem - vim.buffers[None]:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',) vim.buffers[100000000]:KeyError:(100000000,) > Current >> CurrentGetattr vim.current.xxx:AttributeError:('xxx',) --- 1165,1177 ---- vim.current.buffer.range(1, 2, 3):TypeError:('function takes exactly 2 arguments (3 given)',) > BufMap >> BufMapItem 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 >> CurrentGetattr vim.current.xxx:AttributeError:('xxx',) *************** *** 1086,1094 **** --- 1181,1194 ---- 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.xxx = True:AttributeError:('xxx',) + ['/testdir'] + '/testdir' 2,xx before after + pythonx/topmodule/__init__.py + pythonx/topmodule/submodule/__init__.py + pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py vim.command("throw 'abcN'"):error:('abcN',) Exe("throw 'def'"):error:('def',) vim.eval("Exe('throw ''ghi''')"):error:('ghi',) *** ../vim-7.3.1235/src/testdir/test87.in 2013-06-23 14:37:00.000000000 +0200 --- src/testdir/test87.in 2013-06-23 16:26:40.000000000 +0200 *************** *** 290,296 **** :" threading :let l = [0] :py3 l=vim.bindeval('l') ! :py3 <<EOF import threading import time --- 290,296 ---- :" threading :let l = [0] :py3 l=vim.bindeval('l') ! py3 <<EOF import threading import time *************** *** 320,326 **** :" settrace :let l = [] :py3 l=vim.bindeval('l') ! :py3 <<EOF import sys def traceit(frame, event, arg): --- 320,326 ---- :" settrace :let l = [] :py3 l=vim.bindeval('l') ! py3 <<EOF import sys def traceit(frame, event, arg): *************** *** 335,343 **** EOF :py3 sys.settrace(traceit) :py3 trace_main() :py3 del traceit :py3 del trace_main - :py3 sys.settrace(None) :$put =string(l) :" :" Vars --- 335,343 ---- EOF :py3 sys.settrace(traceit) :py3 trace_main() + :py3 sys.settrace(None) :py3 del traceit :py3 del trace_main :$put =string(l) :" :" Vars *************** *** 898,903 **** --- 898,904 ---- '{"": 1}', # Same, but with unicode object 'FailingMapping()', # 'FailingMappingKey()', # + 'FailingNumber()', # )) def convertfrompymapping_test(expr): *************** *** 912,957 **** 'FailingIterNext()', )) class FailingTrue(object): def __bool__(self): ! raise NotImplementedError class FailingIter(object): def __iter__(self): ! raise NotImplementedError class FailingIterNext(object): def __iter__(self): return self def __next__(self): ! raise NotImplementedError class FailingMappingKey(object): def __getitem__(self, item): ! raise NotImplementedError def keys(self): return list("abcH") class FailingMapping(object): def __getitem__(self): ! raise NotImplementedError def keys(self): ! raise NotImplementedError class FailingList(list): def __getitem__(self, idx): if i == 2: ! raise NotImplementedError else: return super(FailingList, self).__getitem__(idx) cb.append("> Output") cb.append(">> OutputSetattr") ee('del sys.stdout.softspace') ! ee('sys.stdout.softspace = []') ee('sys.stdout.attr = None') cb.append(">> OutputWrite") ee('sys.stdout.write(None)') --- 913,980 ---- '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): def __bool__(self): ! raise NotImplementedError('bool') class FailingIter(object): def __iter__(self): ! raise NotImplementedError('iter') class FailingIterNext(object): def __iter__(self): return self def __next__(self): ! raise NotImplementedError('next') class FailingMappingKey(object): def __getitem__(self, item): ! raise NotImplementedError('getitem:mappingkey') def keys(self): return list("abcH") class FailingMapping(object): def __getitem__(self): ! raise NotImplementedError('getitem:mapping') def keys(self): ! raise NotImplementedError('keys') class FailingList(list): def __getitem__(self, idx): if i == 2: ! raise NotImplementedError('getitem:list') else: 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(">> OutputSetattr") ee('del sys.stdout.softspace') ! number_test('sys.stdout.softspace = %s', unsigned=True) ! number_test('sys.stderr.softspace = %s', unsigned=True) ee('sys.stdout.attr = None') cb.append(">> OutputWrite") ee('sys.stdout.write(None)') *************** *** 960,977 **** ee('sys.stdout.writelines([1])') iter_test('sys.stdout.writelines(%s)') cb.append("> VimCommand") ! ee('vim.command(1)') #! Not checked: vim->python exceptions translating: checked later cb.append("> VimToPython") #! Not checked: everything: needs errors in internal python functions cb.append("> VimEval") ! ee('vim.eval(1)') #! Not checked: everything: needs errors in internal python functions cb.append("> VimEvalPy") ! ee('vim.bindeval(1)') #! Not checked: vim->python exceptions translating: checked later cb.append("> VimStrwidth") ! ee('vim.strwidth(1)') cb.append("> Dictionary") cb.append(">> DictionaryConstructor") ee('vim.Dictionary("abcI")') --- 983,1016 ---- ee('sys.stdout.writelines([1])') iter_test('sys.stdout.writelines(%s)') cb.append("> VimCommand") ! stringtochars_test('vim.command(%s)') ! ee('vim.command("", 2)') #! Not checked: vim->python exceptions translating: checked later cb.append("> VimToPython") #! Not checked: everything: needs errors in internal python functions cb.append("> VimEval") ! stringtochars_test('vim.eval(%s)') ! ee('vim.eval("", FailingTrue())') #! Not checked: everything: needs errors in internal python functions cb.append("> VimEvalPy") ! stringtochars_test('vim.bindeval(%s)') ! ee('vim.eval("", 2)') #! Not checked: vim->python exceptions translating: checked later cb.append("> VimStrwidth") ! 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(">> DictionaryConstructor") ee('vim.Dictionary("abcI")') *************** *** 1050,1057 **** ee('vim.current.window.buffer = 0') ee('vim.current.window.cursor = (100000000, 100000000)') ee('vim.current.window.cursor = True') ! ee('vim.current.window.height = "abcK"') ! ee('vim.current.window.width = "abcL"') ee('vim.current.window.xxxxxx = True') cb.append("> WinList") cb.append(">> WinListItem") --- 1089,1096 ---- ee('vim.current.window.buffer = 0') ee('vim.current.window.cursor = (100000000, 100000000)') ee('vim.current.window.cursor = True') ! number_test('vim.current.window.height = %s', unsigned=True) ! number_test('vim.current.window.width = %s', unsigned=True) ee('vim.current.window.xxxxxx = True') cb.append("> WinList") cb.append(">> WinListItem") *************** *** 1059,1064 **** --- 1098,1104 ---- cb.append("> Buffer") cb.append(">> StringToLine (indirect)") ee('vim.current.buffer[0] = "\\na"') + ee('vim.current.buffer[0] = b"\\na"') cb.append(">> SetBufferLine (indirect)") ee('vim.current.buffer[0] = True') cb.append(">> SetBufferLineList (indirect)") *************** *** 1085,1092 **** ee('vim.current.buffer.range(1, 2, 3)') cb.append("> BufMap") cb.append(">> BufMapItem") - ee('vim.buffers[None]') ee('vim.buffers[100000000]') cb.append("> Current") cb.append(">> CurrentGetattr") ee('vim.current.xxx') --- 1125,1132 ---- ee('vim.current.buffer.range(1, 2, 3)') cb.append("> BufMap") cb.append(">> BufMapItem") ee('vim.buffers[100000000]') + number_test('vim.buffers[%s]', natural=True) cb.append("> Current") cb.append(">> CurrentGetattr") ee('vim.current.xxx') *************** *** 1110,1121 **** --- 1150,1165 ---- del convertfrompyobject_test del convertfrompymapping_test del iter_test + del number_test del FailingTrue del FailingIter del FailingIterNext del FailingMapping del FailingMappingKey del FailingList + del NoArgsCall + del FailingCall + del FailingNumber EOF :delfunction F :" *************** *** 1124,1129 **** --- 1168,1183 ---- sys.path.insert(0, os.path.join(os.getcwd(), 'python_before')) sys.path.append(os.path.join(os.getcwd(), 'python_after')) 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 modulex import ddir cb.append(d + ',' + ddir) *************** *** 1131,1140 **** --- 1185,1203 ---- cb.append(before.dir) import after 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 after del d del ddir + del tm + del tms + del tmsss EOF :" :" Test exceptions *************** *** 1188,1193 **** --- 1251,1257 ---- :call garbagecollect(1) :" :/^start:/,$wq! test.out + :" vim: et ts=4 isk-=\: :call getchar() ENDTEST *** ../vim-7.3.1235/src/testdir/test87.ok 2013-06-23 14:37:00.000000000 +0200 --- src/testdir/test87.ok 2013-06-23 16:26:40.000000000 +0200 *************** *** 430,436 **** --- 430,445 ---- > Output >> OutputSetattr 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 = 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',)) >> OutputWrite sys.stdout.write(None):(<class 'TypeError'>, TypeError("Can't convert 'NoneType' object to str implicitly",)) *************** *** 438,461 **** 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",)) >>> Testing *Iter* using sys.stdout.writelines(%s) ! sys.stdout.writelines(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) ! sys.stdout.writelines(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished > VimCommand vim.command(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) > VimToPython > VimEval vim.eval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) > VimEvalPy vim.bindeval(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) > VimStrwidth vim.strwidth(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) > Dictionary >> DictionaryConstructor vim.Dictionary("abcI"):(<class 'ValueError'>, ValueError('expected sequence element of size 2, but got sequence of size 1',)) >> DictionarySetattr del d.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.Dictionary attributes',)) ! d.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError()) vim.vvars.locked = False:(<class 'TypeError'>, TypeError('cannot modify fixed dictionary',)) d.scope = True:(<class 'AttributeError'>, AttributeError('cannot set attribute scope',)) d.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',)) --- 447,498 ---- 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",)) >>> Testing *Iter* using sys.stdout.writelines(%s) ! sys.stdout.writelines(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',)) ! sys.stdout.writelines(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished > VimCommand + >>> Testing StringToChars using vim.command(%s) 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 > VimEval + >>> Testing StringToChars using vim.eval(%s) 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 + >>> Testing StringToChars using vim.bindeval(%s) 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 + >>> Testing StringToChars using vim.strwidth(%s) 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 >> DictionaryConstructor vim.Dictionary("abcI"):(<class 'ValueError'>, ValueError('expected sequence element of size 2, but got sequence of size 1',)) >> DictionarySetattr del d.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.Dictionary attributes',)) ! d.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError('bool',)) vim.vvars.locked = False:(<class 'TypeError'>, TypeError('cannot modify fixed dictionary',)) d.scope = True:(<class 'AttributeError'>, AttributeError('cannot set attribute scope',)) d.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',)) *************** *** 494,507 **** <<< Finished >>> Testing *Iter* using d["a"] = {"abcF" : %s} d["a"] = {"abcF" : FailingIter()}:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! d["a"] = {"abcF" : FailingIterNext()}:(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s} 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" : {"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d["a"] = {"abcF" : FailingMapping()}:(<class 'NotImplementedError'>, NotImplementedError()) ! d["a"] = {"abcF" : FailingMappingKey()}:(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({%s : 1}) d["a"] = Mapping({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 531,545 ---- <<< Finished >>> Testing *Iter* using d["a"] = {"abcF" : %s} d["a"] = {"abcF" : FailingIter()}:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! d["a"] = {"abcF" : FailingIterNext()}:(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s} 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" : {"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d["a"] = {"abcF" : FailingMapping()}:(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d["a"] = {"abcF" : FailingMappingKey()}:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! d["a"] = {"abcF" : FailingNumber()}:(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({%s : 1}) d["a"] = Mapping({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 520,553 **** <<< Finished >>> 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" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> 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" : {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" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError()) ! d["a"] = Mapping({"abcG" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing *Iter* using d["a"] = %s d["a"] = FailingIter():(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! d["a"] = FailingIterNext():(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = %s 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"] = {"": 1}:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d["a"] = FailingMapping():(<class 'NotImplementedError'>, NotImplementedError()) ! d["a"] = FailingMappingKey():(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >> DictionaryUpdate >>> kwargs >>> iter ! d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError()) ! d.update([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError()) >>> Testing *Iter* using d.update(%s) ! d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) ! d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using d.update({%s : 1}) d.update({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 558,593 ---- <<< Finished >>> 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" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> 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" : {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" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d["a"] = Mapping({"abcG" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! d["a"] = Mapping({"abcG" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing *Iter* using d["a"] = %s d["a"] = FailingIter():(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! d["a"] = FailingIterNext():(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = %s 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"] = {"": 1}:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d["a"] = FailingMapping():(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d["a"] = FailingMappingKey():(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! d["a"] = FailingNumber():(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >> DictionaryUpdate >>> kwargs >>> iter ! d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d.update([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError('next',)) >>> Testing *Iter* using d.update(%s) ! d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',)) ! d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing StringToChars using d.update({%s : 1}) d.update({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 566,579 **** <<< Finished >>> Testing *Iter* using d.update({"abcF" : %s}) d.update({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! d.update({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update({"abcF" : %s}) 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" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d.update({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError()) ! d.update({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using d.update(Mapping({%s : 1})) d.update(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 606,620 ---- <<< Finished >>> Testing *Iter* using d.update({"abcF" : %s}) d.update({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! d.update({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using d.update({"abcF" : %s}) 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" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d.update({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d.update({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! d.update({"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing StringToChars using d.update(Mapping({%s : 1})) d.update(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 592,616 **** <<< Finished >>> 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" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> 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" : {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" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError()) ! d.update(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing *Iter* using d.update(%s) ! d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) ! d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update(%s) 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({"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError()) ! d.update(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using d.update(((%s, 0),)) d.update(((1, 0),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 633,659 ---- <<< Finished >>> 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" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> 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" : {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" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d.update(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! d.update(Mapping({"abcG" : FailingNumber()})):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing *Iter* using d.update(%s) ! d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',)) ! d.update(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using d.update(%s) 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({"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d.update(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d.update(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! d.update(FailingNumber()):(<class 'TypeError'>, TypeError("'FailingNumber' object is not iterable",)) <<< Finished >>> Testing StringToChars using d.update(((%s, 0),)) d.update(((1, 0),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 634,647 **** <<< Finished >>> 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" : FailingIterNext()}),)):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> 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" : {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" : FailingMapping()}),)):(<class 'NotImplementedError'>, NotImplementedError()) ! d.update((("a", {"abcF" : FailingMappingKey()}),)):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> 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',)) --- 677,691 ---- <<< Finished >>> 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" : FailingIterNext()}),)):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> 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" : {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" : FailingMapping()}),)):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d.update((("a", {"abcF" : FailingMappingKey()}),)):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! d.update((("a", {"abcF" : FailingNumber()}),)):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> 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',)) *************** *** 660,684 **** <<< Finished >>> 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" : FailingIterNext()})),)):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> 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" : {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" : FailingMapping()})),)):(<class 'NotImplementedError'>, NotImplementedError()) ! d.update((("a", Mapping({"abcG" : FailingMappingKey()})),)):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing *Iter* using d.update((("a", %s),)) d.update((("a", FailingIter()),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! d.update((("a", FailingIterNext()),)):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", %s),)) 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", {"": 1}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d.update((("a", FailingMapping()),)):(<class 'NotImplementedError'>, NotImplementedError()) ! d.update((("a", FailingMappingKey()),)):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >> DictionaryPopItem d.popitem(1, 2):(<class 'TypeError'>, TypeError('popitem() takes no arguments (2 given)',)) --- 704,730 ---- <<< Finished >>> 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" : FailingIterNext()})),)):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> 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" : {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" : FailingMapping()})),)):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d.update((("a", Mapping({"abcG" : FailingMappingKey()})),)):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! d.update((("a", Mapping({"abcG" : FailingNumber()})),)):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing *Iter* using d.update((("a", %s),)) d.update((("a", FailingIter()),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! d.update((("a", FailingIterNext()),)):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", %s),)) 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", {"": 1}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! d.update((("a", FailingMapping()),)):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! d.update((("a", FailingMappingKey()),)):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! d.update((("a", FailingNumber()),)):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >> DictionaryPopItem d.popitem(1, 2):(<class 'TypeError'>, TypeError('popitem() takes no arguments (2 given)',)) *************** *** 689,696 **** 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',)) >>> Testing *Iter* using vim.List(%s) ! vim.List(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) ! vim.List(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using vim.List([{%s : 1}]) vim.List([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 735,742 ---- 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',)) >>> Testing *Iter* using vim.List(%s) ! vim.List(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',)) ! vim.List(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing StringToChars using vim.List([{%s : 1}]) vim.List([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 709,722 **** <<< Finished >>> Testing *Iter* using vim.List([{"abcF" : %s}]) vim.List([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! vim.List([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}]) 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" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! vim.List([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError()) ! vim.List([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using vim.List([Mapping({%s : 1})]) vim.List([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 755,769 ---- <<< Finished >>> Testing *Iter* using vim.List([{"abcF" : %s}]) vim.List([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! vim.List([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}]) 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" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! vim.List([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! vim.List([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! vim.List([{"abcF" : FailingNumber()}]):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing StringToChars using vim.List([Mapping({%s : 1})]) vim.List([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 735,759 **** <<< Finished >>> 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" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> 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" : {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" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError()) ! vim.List([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing *Iter* using vim.List([%s]) vim.List([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! vim.List([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using vim.List([%s]) 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([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! vim.List([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError()) ! vim.List([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >> ListItem l[1000]:(<class 'IndexError'>, IndexError('list index out of range',)) --- 782,808 ---- <<< Finished >>> 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" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> 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" : {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" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! vim.List([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! vim.List([Mapping({"abcG" : FailingNumber()})]):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing *Iter* using vim.List([%s]) vim.List([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! vim.List([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using vim.List([%s]) 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([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! vim.List([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! vim.List([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! vim.List([FailingNumber()]):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >> ListItem l[1000]:(<class 'IndexError'>, IndexError('list index out of range',)) *************** *** 763,770 **** >> ListAssSlice ll[1:100] = "abcJ":(<class 'vim.error'>, error('list is locked',)) >>> Testing *Iter* using l[:] = %s ! l[:] = FailingIter():(<class 'NotImplementedError'>, NotImplementedError()) ! l[:] = FailingIterNext()::(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using l[:] = [{%s : 1}] l[:] = [{1 : 1}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 812,819 ---- >> ListAssSlice ll[1:100] = "abcJ":(<class 'vim.error'>, error('list is locked',)) >>> Testing *Iter* using l[:] = %s ! l[:] = FailingIter():(<class 'NotImplementedError'>, NotImplementedError('iter',)) ! l[:] = FailingIterNext():(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing StringToChars using l[:] = [{%s : 1}] l[:] = [{1 : 1}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 783,796 **** <<< Finished >>> Testing *Iter* using l[:] = [{"abcF" : %s}] l[:] = [{"abcF" : FailingIter()}]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l[:] = [{"abcF" : FailingIterNext()}]:(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}] 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" : {"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! l[:] = [{"abcF" : FailingMapping()}]:(<class 'NotImplementedError'>, NotImplementedError()) ! l[:] = [{"abcF" : FailingMappingKey()}]:(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({%s : 1})] l[:] = [Mapping({1 : 1})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 832,846 ---- <<< Finished >>> Testing *Iter* using l[:] = [{"abcF" : %s}] l[:] = [{"abcF" : FailingIter()}]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l[:] = [{"abcF" : FailingIterNext()}]:(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}] 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" : {"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! l[:] = [{"abcF" : FailingMapping()}]:(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! l[:] = [{"abcF" : FailingMappingKey()}]:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! l[:] = [{"abcF" : FailingNumber()}]:(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({%s : 1})] l[:] = [Mapping({1 : 1})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 809,838 **** <<< Finished >>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})] l[:] = [Mapping({"abcG" : FailingIter()})]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l[:] = [Mapping({"abcG" : FailingIterNext()})]:(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})] 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" : {"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! l[:] = [Mapping({"abcG" : FailingMapping()})]:(<class 'NotImplementedError'>, NotImplementedError()) ! l[:] = [Mapping({"abcG" : FailingMappingKey()})]:(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing *Iter* using l[:] = [%s] l[:] = [FailingIter()]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l[:] = [FailingIterNext()]:(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [%s] l[:] = [None]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) l[:] = [{b"": 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[:] = [FailingMappingKey()]:(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >> ListConcatInPlace >>> Testing *Iter* using l.extend(%s) ! l.extend(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError()) ! l.extend(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using l.extend([{%s : 1}]) l.extend([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 859,890 ---- <<< Finished >>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})] l[:] = [Mapping({"abcG" : FailingIter()})]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l[:] = [Mapping({"abcG" : FailingIterNext()})]:(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})] 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" : {"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! l[:] = [Mapping({"abcG" : FailingMapping()})]:(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! l[:] = [Mapping({"abcG" : FailingMappingKey()})]:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! l[:] = [Mapping({"abcG" : FailingNumber()})]:(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing *Iter* using l[:] = [%s] l[:] = [FailingIter()]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l[:] = [FailingIterNext()]:(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [%s] l[:] = [None]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) l[:] = [{b"": 1}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) l[:] = [{"": 1}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! l[:] = [FailingMapping()]:(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! l[:] = [FailingMappingKey()]:(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! l[:] = [FailingNumber()]:(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >> ListConcatInPlace >>> Testing *Iter* using l.extend(%s) ! l.extend(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError('iter',)) ! l.extend(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing StringToChars using l.extend([{%s : 1}]) l.extend([{1 : 1}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 851,864 **** <<< Finished >>> Testing *Iter* using l.extend([{"abcF" : %s}]) l.extend([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l.extend([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}]) 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" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! l.extend([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError()) ! l.extend([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using l.extend([Mapping({%s : 1})]) l.extend([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 903,917 ---- <<< Finished >>> Testing *Iter* using l.extend([{"abcF" : %s}]) l.extend([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l.extend([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}]) 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" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! l.extend([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! l.extend([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! l.extend([{"abcF" : FailingNumber()}]):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing StringToChars using l.extend([Mapping({%s : 1})]) l.extend([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 877,905 **** <<< Finished >>> 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" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> 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" : {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" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError()) ! l.extend([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing *Iter* using l.extend([%s]) l.extend([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l.extend([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l.extend([%s]) 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([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! l.extend([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError()) ! l.extend([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >> ListSetattr del l.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.List attributes',)) ! l.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError()) l.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',)) > Function >> FunctionConstructor --- 930,960 ---- <<< Finished >>> 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" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> 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" : {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" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! l.extend([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! l.extend([Mapping({"abcG" : FailingNumber()})]):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing *Iter* using l.extend([%s]) l.extend([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! l.extend([FailingIterNext()]):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using l.extend([%s]) 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([{"": 1}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! l.extend([FailingMapping()]):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! l.extend([FailingMappingKey()]):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! l.extend([FailingNumber()]):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >> ListSetattr del l.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.List attributes',)) ! l.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError('bool',)) l.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set attribute xxx',)) > Function >> FunctionConstructor *************** *** 924,937 **** <<< Finished >>> Testing *Iter* using f({"abcF" : %s}) f({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! f({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using f({"abcF" : %s}) 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" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! f({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError()) ! f({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using f(Mapping({%s : 1})) f(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 979,993 ---- <<< Finished >>> Testing *Iter* using f({"abcF" : %s}) f({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! f({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using f({"abcF" : %s}) 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" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! f({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! f({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! f({"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing StringToChars using f(Mapping({%s : 1})) f(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 950,974 **** <<< Finished >>> Testing *Iter* using f(Mapping({"abcG" : %s})) f(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! f(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s})) 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" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! f(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError()) ! f(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing *Iter* using f(%s) f(FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! f(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using f(%s) f(None):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) f({b"": 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(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using fd(self={%s : 1}) fd(self={1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 1006,1032 ---- <<< Finished >>> Testing *Iter* using f(Mapping({"abcG" : %s})) f(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! f(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s})) 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" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! f(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! f(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! f(Mapping({"abcG" : FailingNumber()})):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing *Iter* using f(%s) f(FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! f(FailingIterNext()):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using f(%s) f(None):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',)) f({b"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) f({"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! f(FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! f(FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! f(FailingNumber()):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing StringToChars using fd(self={%s : 1}) fd(self={1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 987,1000 **** <<< Finished >>> Testing *Iter* using fd(self={"abcF" : %s}) fd(self={"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! fd(self={"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using fd(self={"abcF" : %s}) 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" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! fd(self={"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError()) ! fd(self={"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing StringToChars using fd(self=Mapping({%s : 1})) fd(self=Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) --- 1045,1059 ---- <<< Finished >>> Testing *Iter* using fd(self={"abcF" : %s}) fd(self={"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',)) ! fd(self={"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> Testing ConvertFromPyObject using fd(self={"abcF" : %s}) 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" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! fd(self={"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! fd(self={"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! fd(self={"abcF" : FailingNumber()}):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing StringToChars using fd(self=Mapping({%s : 1})) fd(self=Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',)) *************** *** 1013,1026 **** <<< Finished >>> 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" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> 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" : {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" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError()) ! fd(self=Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing *Iter* using fd(self=%s) fd(self=FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim dictionary',)) --- 1072,1086 ---- <<< Finished >>> 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" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError('next',)) <<< Finished >>> 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" : {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" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! fd(self=Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! fd(self=Mapping({"abcG" : FailingNumber()})):(<class 'NotImplementedError'>, NotImplementedError('int',)) <<< Finished >>> Testing *Iter* using fd(self=%s) fd(self=FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim dictionary',)) *************** *** 1030,1037 **** 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={"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! fd(self=FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError()) ! fd(self=FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyMapping using fd(self=%s) fd(self=[]):(<class 'AttributeError'>, AttributeError('keys',)) --- 1090,1098 ---- 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={"": 1}):(<class 'ValueError'>, ValueError('empty keys are not allowed',)) ! fd(self=FailingMapping()):(<class 'NotImplementedError'>, NotImplementedError('keys',)) ! fd(self=FailingMappingKey()):(<class 'NotImplementedError'>, NotImplementedError('getitem:mappingkey',)) ! fd(self=FailingNumber()):(<class 'TypeError'>, TypeError('unable to convert FailingNumber to vim dictionary',)) <<< Finished >>> Testing ConvertFromPyMapping using fd(self=%s) fd(self=[]):(<class 'AttributeError'>, AttributeError('keys',)) *************** *** 1049,1056 **** 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 = 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',)) ! vim.current.window.width = "abcL":(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got str',)) vim.current.window.xxxxxx = True:(<class 'AttributeError'>, AttributeError('xxxxxx',)) > WinList >> WinListItem --- 1110,1125 ---- 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 = True:(<class 'TypeError'>, TypeError('argument must be 2-item sequence, not bool',)) ! >>> Testing NumberToLong using vim.current.window.height = %s ! 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',)) > WinList >> WinListItem *************** *** 1058,1063 **** --- 1127,1133 ---- > Buffer >> StringToLine (indirect) 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) vim.current.buffer[0] = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',)) >> SetBufferLineList (indirect) *************** *** 1084,1091 **** vim.current.buffer.range(1, 2, 3):(<class 'TypeError'>, TypeError('function takes exactly 2 arguments (3 given)',)) > BufMap >> 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,)) > Current >> CurrentGetattr vim.current.xxx:(<class 'AttributeError'>, AttributeError("'vim.currentdata' object has no attribute 'xxx'",)) --- 1154,1166 ---- vim.current.buffer.range(1, 2, 3):(<class 'TypeError'>, TypeError('function takes exactly 2 arguments (3 given)',)) > BufMap >> BufMapItem 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 >> CurrentGetattr vim.current.xxx:(<class 'AttributeError'>, AttributeError("'vim.currentdata' object has no attribute 'xxx'",)) *************** *** 1095,1103 **** --- 1170,1183 ---- 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.xxx = True:(<class 'AttributeError'>, AttributeError('xxx',)) + ['.'] + '.' 3,xx before 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',)) Exe("throw 'def'"):(<class 'vim.error'>, error('def',)) vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',)) *** ../vim-7.3.1235/src/testdir/pythonx/topmodule/__init__.py 1970-01-01 01:00:00.000000000 +0100 --- src/testdir/pythonx/topmodule/__init__.py 2013-06-23 16:23:50.000000000 +0200 *************** *** 0 **** --- 1 ---- + # *** ../vim-7.3.1235/src/testdir/pythonx/topmodule/submodule/__init__.py 1970-01-01 01:00:00.000000000 +0100 --- src/testdir/pythonx/topmodule/submodule/__init__.py 2013-06-23 16:23:50.000000000 +0200 *************** *** 0 **** --- 1 ---- + # *** ../vim-7.3.1235/src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py 1970-01-01 01:00:00.000000000 +0100 --- src/testdir/pythonx/topmodule/submodule/subsubmodule/__init__.py 2013-06-23 16:23:51.000000000 +0200 *************** *** 0 **** --- 1 ---- + # *** ../vim-7.3.1235/src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py 1970-01-01 01:00:00.000000000 +0100 --- src/testdir/pythonx/topmodule/submodule/subsubmodule/subsubsubmodule.py 2013-06-23 16:23:51.000000000 +0200 *************** *** 0 **** --- 1 ---- + # *** ../vim-7.3.1235/src/version.c 2013-06-23 16:16:13.000000000 +0200 --- src/version.c 2013-06-23 16:35:04.000000000 +0200 *************** *** 730,731 **** --- 730,733 ---- { /* Add new patch number below this line */ + /**/ + 1236, /**/ -- Microsoft: "Windows NT 4.0 now has the same user-interface as Windows 95" Windows 95: "Press CTRL-ALT-DEL to reboot" Windows NT 4.0: "Press CTRL-ALT-DEL to login" /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///