From 0ee68529903151ff760010a1e53e85ff2da6481e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Jul 04 2013 13:36:33 +0000 Subject: - patchlevel 1236 --- diff --git a/7.3.1236 b/7.3.1236 new file mode 100644 index 0000000..8b5182f --- /dev/null +++ b/7.3.1236 @@ -0,0 +1,2992 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.1236 +Fcc: outbox +From: Bram Moolenaar +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 < -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 < 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:(, AttributeError("can't delete OutputObject attributes",)) ++ >>> Testing NumberToLong using sys.stdout.softspace = %s + sys.stdout.softspace = []:(, TypeError('expected int() or something supporting coercing to int(), but got list',)) ++ sys.stdout.softspace = None:(, TypeError('expected int() or something supporting coercing to int(), 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() or something supporting coercing to int(), but got list',)) ++ sys.stderr.softspace = None:(, TypeError('expected int() or something supporting coercing to int(), 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("Can't convert 'NoneType' object to str implicitly",)) +*************** +*** 438,461 **** + sys.stdout.writelines(None):(, TypeError("'NoneType' object is not iterable",)) + sys.stdout.writelines([1]):(, TypeError("Can't convert 'int' object to str implicitly",)) + >>> Testing *Iter* using sys.stdout.writelines(%s) +! sys.stdout.writelines(FailingIter()):(, NotImplementedError()) +! sys.stdout.writelines(FailingIterNext()):(, NotImplementedError()) + <<< Finished + > VimCommand + vim.command(1):(, TypeError('expected bytes() or str() instance, but got int',)) + > VimToPython + > VimEval + vim.eval(1):(, TypeError('expected bytes() or str() instance, but got int',)) + > VimEvalPy + vim.bindeval(1):(, TypeError('expected bytes() or str() instance, but got int',)) + > VimStrwidth + vim.strwidth(1):(, TypeError('expected bytes() or str() 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',)) +--- 447,498 ---- + sys.stdout.writelines(None):(, TypeError("'NoneType' object is not iterable",)) + sys.stdout.writelines([1]):(, TypeError("Can't convert 'int' object to str implicitly",)) + >>> 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 bytes() or str() instance, but got int',)) ++ vim.command(b"\0"):(, TypeError('expected bytes with no null',)) ++ vim.command("\0"):(, TypeError('expected bytes with no null',)) ++ <<< 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 bytes() or str() instance, but got int',)) ++ vim.eval(b"\0"):(, TypeError('expected bytes with no null',)) ++ vim.eval("\0"):(, TypeError('expected bytes with no null',)) ++ <<< Finished ++ vim.eval("", FailingTrue()):(, TypeError('function takes exactly 1 argument (2 given)',)) + > VimEvalPy ++ >>> Testing StringToChars using vim.bindeval(%s) + vim.bindeval(1):(, TypeError('expected bytes() or str() instance, but got int',)) ++ vim.bindeval(b"\0"):(, TypeError('expected bytes with no null',)) ++ vim.bindeval("\0"):(, TypeError('expected bytes with no null',)) ++ <<< Finished ++ vim.eval("", 2):(, TypeError('function takes exactly 1 argument (2 given)',)) + > VimStrwidth ++ >>> Testing StringToChars using vim.strwidth(%s) + vim.strwidth(1):(, TypeError('expected bytes() or str() instance, but got int',)) ++ vim.strwidth(b"\0"):(, TypeError('expected bytes with no null',)) ++ vim.strwidth("\0"):(, TypeError('expected bytes with no null',)) ++ <<< Finished ++ > VimForeachRTP ++ vim.foreach_rtp(None):(, TypeError("'NoneType' object is not callable",)) ++ vim.foreach_rtp(NoArgsCall()):(, TypeError('__call__() takes exactly 1 positional 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',)) +*************** +*** 494,507 **** + <<< 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" : {b"": 1}}:(, ValueError('empty keys are not allowed',)) + d["a"] = {"abcF" : {"": 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 bytes() or str() instance, but got int',)) +--- 531,545 ---- + <<< 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" : {b"": 1}}:(, ValueError('empty keys are not allowed',)) + d["a"] = {"abcF" : {"": 1}}:(, ValueError('empty keys are not allowed',)) +! d["a"] = {"abcF" : FailingMapping()}:(, NotImplementedError('keys',)) +! d["a"] = {"abcF" : FailingMappingKey()}:(, NotImplementedError('getitem:mappingkey',)) +! d["a"] = {"abcF" : FailingNumber()}:(, NotImplementedError('int',)) + <<< Finished + >>> Testing StringToChars using d["a"] = Mapping({%s : 1}) + d["a"] = Mapping({1 : 1}):(, 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()}):(, 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" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) + d["a"] = Mapping({"abcG" : {"": 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"] = {b"": 1}:(, ValueError('empty keys are not allowed',)) + d["a"] = {"": 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 *Iter* using d.update(%s) +! d.update(FailingIter()):(, NotImplementedError()) +! d.update(FailingIterNext()):(, NotImplementedError()) + <<< Finished + >>> Testing StringToChars using d.update({%s : 1}) + d.update({1 : 1}):(, 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()}):(, 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" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) + d["a"] = Mapping({"abcG" : {"": 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()}):(, NotImplementedError('int',)) + <<< 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"] = {b"": 1}:(, ValueError('empty keys are not allowed',)) + d["a"] = {"": 1}:(, ValueError('empty keys are not allowed',)) +! d["a"] = FailingMapping():(, NotImplementedError('keys',)) +! d["a"] = FailingMappingKey():(, NotImplementedError('getitem:mappingkey',)) +! d["a"] = FailingNumber():(, NotImplementedError('int',)) + <<< 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 bytes() or str() instance, but got int',)) +*************** +*** 566,579 **** + <<< 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" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) + d.update({"abcF" : {"": 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 bytes() or str() instance, but got int',)) +--- 606,620 ---- + <<< 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" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) + d.update({"abcF" : {"": 1}}):(, ValueError('empty keys are not allowed',)) +! d.update({"abcF" : FailingMapping()}):(, NotImplementedError('keys',)) +! d.update({"abcF" : FailingMappingKey()}):(, NotImplementedError('getitem:mappingkey',)) +! d.update({"abcF" : FailingNumber()}):(, NotImplementedError('int',)) + <<< Finished + >>> Testing StringToChars using d.update(Mapping({%s : 1})) + d.update(Mapping({1 : 1})):(, 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()})):(, 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" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) + d.update(Mapping({"abcG" : {"": 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({b"": 1}):(, ValueError('empty keys are not allowed',)) + d.update({"": 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 bytes() or str() instance, but got int',)) +--- 633,659 ---- + <<< 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" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) + d.update(Mapping({"abcG" : {"": 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()})):(, NotImplementedError('int',)) + <<< 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({b"": 1}):(, ValueError('empty keys are not allowed',)) + d.update({"": 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 bytes() or str() instance, but got int',)) +*************** +*** 634,647 **** + <<< 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" : {b"": 1}}),)):(, ValueError('empty keys are not allowed',)) + d.update((("a", {"abcF" : {"": 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 bytes() or str() instance, but got int',)) +--- 677,691 ---- + <<< 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" : {b"": 1}}),)):(, ValueError('empty keys are not allowed',)) + d.update((("a", {"abcF" : {"": 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()}),)):(, NotImplementedError('int',)) + <<< Finished + >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),)) + d.update((("a", Mapping({1 : 1})),)):(, 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()})),)):(, 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" : {b"": 1}})),)):(, ValueError('empty keys are not allowed',)) + d.update((("a", Mapping({"abcG" : {"": 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", {b"": 1}),)):(, ValueError('empty keys are not allowed',)) + d.update((("a", {"": 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)',)) +--- 704,730 ---- + <<< 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" : {b"": 1}})),)):(, ValueError('empty keys are not allowed',)) + d.update((("a", Mapping({"abcG" : {"": 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()})),)):(, NotImplementedError('int',)) + <<< 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", {b"": 1}),)):(, ValueError('empty keys are not allowed',)) + d.update((("a", {"": 1}),)):(, ValueError('empty keys are not allowed',)) +! d.update((("a", FailingMapping()),)):(, NotImplementedError('keys',)) +! d.update((("a", FailingMappingKey()),)):(, NotImplementedError('getitem:mappingkey',)) +! d.update((("a", FailingNumber()),)):(, NotImplementedError('int',)) + <<< Finished + >> DictionaryPopItem + d.popitem(1, 2):(, TypeError('popitem() takes no arguments (2 given)',)) +*************** +*** 689,696 **** + 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()) +! vim.List(FailingIterNext()):(, NotImplementedError()) + <<< Finished + >>> Testing StringToChars using vim.List([{%s : 1}]) + vim.List([{1 : 1}]):(, TypeError('expected bytes() or str() instance, but got int',)) +--- 735,742 ---- + 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 bytes() or str() instance, but got int',)) +*************** +*** 709,722 **** + <<< 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" : {b"": 1}}]):(, ValueError('empty keys are not allowed',)) + vim.List([{"abcF" : {"": 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 bytes() or str() instance, but got int',)) +--- 755,769 ---- + <<< 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" : {b"": 1}}]):(, ValueError('empty keys are not allowed',)) + vim.List([{"abcF" : {"": 1}}]):(, ValueError('empty keys are not allowed',)) +! vim.List([{"abcF" : FailingMapping()}]):(, NotImplementedError('keys',)) +! vim.List([{"abcF" : FailingMappingKey()}]):(, NotImplementedError('getitem:mappingkey',)) +! vim.List([{"abcF" : FailingNumber()}]):(, NotImplementedError('int',)) + <<< Finished + >>> Testing StringToChars using vim.List([Mapping({%s : 1})]) + vim.List([Mapping({1 : 1})]):(, 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()})]):(, 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" : {b"": 1}})]):(, ValueError('empty keys are not allowed',)) + vim.List([Mapping({"abcG" : {"": 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([{b"": 1}]):(, ValueError('empty keys are not allowed',)) + vim.List([{"": 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',)) +--- 782,808 ---- + <<< 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" : {b"": 1}})]):(, ValueError('empty keys are not allowed',)) + vim.List([Mapping({"abcG" : {"": 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()})]):(, NotImplementedError('int',)) + <<< 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([{b"": 1}]):(, ValueError('empty keys are not allowed',)) + vim.List([{"": 1}]):(, ValueError('empty keys are not allowed',)) +! vim.List([FailingMapping()]):(, NotImplementedError('keys',)) +! vim.List([FailingMappingKey()]):(, NotImplementedError('getitem:mappingkey',)) +! vim.List([FailingNumber()]):(, NotImplementedError('int',)) + <<< Finished + >> ListItem + l[1000]:(, IndexError('list index out of range',)) +*************** +*** 763,770 **** + >> ListAssSlice + ll[1:100] = "abcJ":(, error('list is locked',)) + >>> Testing *Iter* using l[:] = %s +! l[:] = FailingIter():(, NotImplementedError()) +! l[:] = FailingIterNext()::(, NotImplementedError()) + <<< Finished + >>> Testing StringToChars using l[:] = [{%s : 1}] + l[:] = [{1 : 1}]:(, TypeError('expected bytes() or str() instance, but got int',)) +--- 812,819 ---- + >> 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 bytes() or str() instance, but got int',)) +*************** +*** 783,796 **** + <<< 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" : {b"": 1}}]:(, ValueError('empty keys are not allowed',)) + l[:] = [{"abcF" : {"": 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 bytes() or str() instance, but got int',)) +--- 832,846 ---- + <<< 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" : {b"": 1}}]:(, ValueError('empty keys are not allowed',)) + l[:] = [{"abcF" : {"": 1}}]:(, ValueError('empty keys are not allowed',)) +! l[:] = [{"abcF" : FailingMapping()}]:(, NotImplementedError('keys',)) +! l[:] = [{"abcF" : FailingMappingKey()}]:(, NotImplementedError('getitem:mappingkey',)) +! l[:] = [{"abcF" : FailingNumber()}]:(, NotImplementedError('int',)) + <<< Finished + >>> Testing StringToChars using l[:] = [Mapping({%s : 1})] + l[:] = [Mapping({1 : 1})]:(, TypeError('expected bytes() or str() instance, but got int',)) +*************** +*** 809,838 **** + <<< 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" : {b"": 1}})]:(, ValueError('empty keys are not allowed',)) + l[:] = [Mapping({"abcG" : {"": 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[:] = [{b"": 1}]:(, ValueError('empty keys are not allowed',)) + l[:] = [{"": 1}]:(, ValueError('empty keys are not allowed',)) +! l[:] = [FailingMapping()]:(, NotImplementedError()) +! l[:] = [FailingMappingKey()]:(, NotImplementedError()) + <<< Finished + >> ListConcatInPlace + >>> Testing *Iter* using l.extend(%s) +! l.extend(FailingIter()):(, NotImplementedError()) +! l.extend(FailingIterNext()):(, NotImplementedError()) + <<< Finished + >>> Testing StringToChars using l.extend([{%s : 1}]) + l.extend([{1 : 1}]):(, TypeError('expected bytes() or str() instance, but got int',)) +--- 859,890 ---- + <<< 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" : {b"": 1}})]:(, ValueError('empty keys are not allowed',)) + l[:] = [Mapping({"abcG" : {"": 1}})]:(, ValueError('empty keys are not allowed',)) +! l[:] = [Mapping({"abcG" : FailingMapping()})]:(, NotImplementedError('keys',)) +! l[:] = [Mapping({"abcG" : FailingMappingKey()})]:(, NotImplementedError('getitem:mappingkey',)) +! l[:] = [Mapping({"abcG" : FailingNumber()})]:(, NotImplementedError('int',)) + <<< 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[:] = [{b"": 1}]:(, ValueError('empty keys are not allowed',)) + l[:] = [{"": 1}]:(, ValueError('empty keys are not allowed',)) +! l[:] = [FailingMapping()]:(, NotImplementedError('keys',)) +! l[:] = [FailingMappingKey()]:(, NotImplementedError('getitem:mappingkey',)) +! l[:] = [FailingNumber()]:(, NotImplementedError('int',)) + <<< 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 bytes() or str() instance, but got int',)) +*************** +*** 851,864 **** + <<< 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" : {b"": 1}}]):(, ValueError('empty keys are not allowed',)) + l.extend([{"abcF" : {"": 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 bytes() or str() instance, but got int',)) +--- 903,917 ---- + <<< 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" : {b"": 1}}]):(, ValueError('empty keys are not allowed',)) + l.extend([{"abcF" : {"": 1}}]):(, ValueError('empty keys are not allowed',)) +! l.extend([{"abcF" : FailingMapping()}]):(, NotImplementedError('keys',)) +! l.extend([{"abcF" : FailingMappingKey()}]):(, NotImplementedError('getitem:mappingkey',)) +! l.extend([{"abcF" : FailingNumber()}]):(, NotImplementedError('int',)) + <<< Finished + >>> Testing StringToChars using l.extend([Mapping({%s : 1})]) + l.extend([Mapping({1 : 1})]):(, 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()})]):(, 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" : {b"": 1}})]):(, ValueError('empty keys are not allowed',)) + l.extend([Mapping({"abcG" : {"": 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([{b"": 1}]):(, ValueError('empty keys are not allowed',)) + l.extend([{"": 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 +--- 930,960 ---- + <<< 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" : {b"": 1}})]):(, ValueError('empty keys are not allowed',)) + l.extend([Mapping({"abcG" : {"": 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()})]):(, NotImplementedError('int',)) + <<< 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([{b"": 1}]):(, ValueError('empty keys are not allowed',)) + l.extend([{"": 1}]):(, ValueError('empty keys are not allowed',)) +! l.extend([FailingMapping()]):(, NotImplementedError('keys',)) +! l.extend([FailingMappingKey()]):(, NotImplementedError('getitem:mappingkey',)) +! l.extend([FailingNumber()]):(, NotImplementedError('int',)) + <<< 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 +*************** +*** 924,937 **** + <<< 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" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) + f({"abcF" : {"": 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 bytes() or str() instance, but got int',)) +--- 979,993 ---- + <<< 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" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) + f({"abcF" : {"": 1}}):(, ValueError('empty keys are not allowed',)) +! f({"abcF" : FailingMapping()}):(, NotImplementedError('keys',)) +! f({"abcF" : FailingMappingKey()}):(, NotImplementedError('getitem:mappingkey',)) +! f({"abcF" : FailingNumber()}):(, NotImplementedError('int',)) + <<< Finished + >>> Testing StringToChars using f(Mapping({%s : 1})) + f(Mapping({1 : 1})):(, TypeError('expected bytes() or str() instance, but got int',)) +*************** +*** 950,974 **** + <<< 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" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) + f(Mapping({"abcG" : {"": 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({b"": 1}):(, ValueError('empty keys are not allowed',)) + f({"": 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 bytes() or str() instance, but got int',)) +--- 1006,1032 ---- + <<< 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" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) + f(Mapping({"abcG" : {"": 1}})):(, ValueError('empty keys are not allowed',)) +! f(Mapping({"abcG" : FailingMapping()})):(, NotImplementedError('keys',)) +! f(Mapping({"abcG" : FailingMappingKey()})):(, NotImplementedError('getitem:mappingkey',)) +! f(Mapping({"abcG" : FailingNumber()})):(, NotImplementedError('int',)) + <<< 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({b"": 1}):(, ValueError('empty keys are not allowed',)) + f({"": 1}):(, ValueError('empty keys are not allowed',)) +! f(FailingMapping()):(, NotImplementedError('keys',)) +! f(FailingMappingKey()):(, NotImplementedError('getitem:mappingkey',)) +! f(FailingNumber()):(, NotImplementedError('int',)) + <<< Finished + >>> Testing StringToChars using fd(self={%s : 1}) + fd(self={1 : 1}):(, TypeError('expected bytes() or str() instance, but got int',)) +*************** +*** 987,1000 **** + <<< 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" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) + fd(self={"abcF" : {"": 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 bytes() or str() instance, but got int',)) +--- 1045,1059 ---- + <<< 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" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) + fd(self={"abcF" : {"": 1}}):(, ValueError('empty keys are not allowed',)) +! fd(self={"abcF" : FailingMapping()}):(, NotImplementedError('keys',)) +! fd(self={"abcF" : FailingMappingKey()}):(, NotImplementedError('getitem:mappingkey',)) +! fd(self={"abcF" : FailingNumber()}):(, NotImplementedError('int',)) + <<< Finished + >>> Testing StringToChars using fd(self=Mapping({%s : 1})) + fd(self=Mapping({1 : 1})):(, 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()})):(, 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" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) + fd(self=Mapping({"abcG" : {"": 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',)) +--- 1072,1086 ---- + <<< 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" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) + fd(self=Mapping({"abcG" : {"": 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()})):(, NotImplementedError('int',)) + <<< Finished + >>> Testing *Iter* using fd(self=%s) + fd(self=FailingIter()):(, TypeError('unable to convert FailingIter to vim dictionary',)) +*************** +*** 1030,1037 **** + fd(self=None):(, TypeError('unable to convert NoneType to vim dictionary',)) + fd(self={b"": 1}):(, ValueError('empty keys are not allowed',)) + fd(self={"": 1}):(, ValueError('empty keys are not allowed',)) +! fd(self=FailingMapping()):(, NotImplementedError()) +! fd(self=FailingMappingKey()):(, NotImplementedError()) + <<< Finished + >>> Testing ConvertFromPyMapping using fd(self=%s) + fd(self=[]):(, AttributeError('keys',)) +--- 1090,1098 ---- + fd(self=None):(, TypeError('unable to convert NoneType to vim dictionary',)) + fd(self={b"": 1}):(, ValueError('empty keys are not allowed',)) + fd(self={"": 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=[]):(, AttributeError('keys',)) +*************** +*** 1049,1056 **** + 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() or something supporting coercing to int(), but got str',)) +! vim.current.window.width = "abcL":(, TypeError('expected int() or something supporting coercing to int(), but got str',)) + vim.current.window.xxxxxx = True:(, AttributeError('xxxxxx',)) + > WinList + >> WinListItem +--- 1110,1125 ---- + 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() or something supporting coercing to int(), but got list',)) +! vim.current.window.height = None:(, TypeError('expected int() or something supporting coercing to int(), 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() or something supporting coercing to int(), but got list',)) +! vim.current.window.width = None:(, TypeError('expected int() or something supporting coercing to int(), 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 +*************** +*** 1058,1063 **** +--- 1127,1133 ---- + > Buffer + >> StringToLine (indirect) + vim.current.buffer[0] = "\na":(, error('string cannot contain newlines',)) ++ vim.current.buffer[0] = b"\na":(, error('string cannot contain newlines',)) + >> SetBufferLine (indirect) + vim.current.buffer[0] = True:(, TypeError('bad argument type for built-in operation',)) + >> SetBufferLineList (indirect) +*************** +*** 1084,1091 **** + vim.current.buffer.range(1, 2, 3):(, TypeError('function takes exactly 2 arguments (3 given)',)) + > BufMap + >> BufMapItem +- vim.buffers[None]:(, TypeError('expected int() or something supporting coercing to int(), but got NoneType',)) + vim.buffers[100000000]:(, KeyError(100000000,)) + > Current + >> CurrentGetattr + vim.current.xxx:(, AttributeError("'vim.currentdata' object has no attribute 'xxx'",)) +--- 1154,1166 ---- + 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() or something supporting coercing to int(), but got list',)) ++ vim.buffers[None]:(, TypeError('expected int() or something supporting coercing to int(), 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("'vim.currentdata' object has no attribute 'xxx'",)) +*************** +*** 1095,1103 **** +--- 1170,1183 ---- + 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',)) ++ ['.'] ++ '.' + 3,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/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 ///