To: vim_dev@googlegroups.com Subject: Patch 7.3.1230 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.3.1230 Problem: Python: Exception messages are not clear. Solution: Make exception messages more verbose. (ZyX) Files: src/if_py_both.h, src/if_python3.c, src/if_python.c, src/testdir/test86.ok, src/testdir/test87.ok *** ../vim-7.3.1229/src/if_py_both.h 2013-06-23 13:28:11.000000000 +0200 --- src/if_py_both.h 2013-06-23 13:31:16.000000000 +0200 *************** *** 29,37 **** --- 29,53 ---- #define PyErr_SET_STRING(exc, str) PyErr_SetString(exc, _(str)) #define PyErr_SetVim(str) PyErr_SetString(VimError, str) #define PyErr_SET_VIM(str) PyErr_SET_STRING(VimError, str) + #define PyErr_FORMAT(exc, str, tail) PyErr_Format(exc, _(str), tail) + #define PyErr_VIM_FORMAT(str, tail) PyErr_FORMAT(VimError, str, tail) + + #define Py_TYPE_NAME(obj) (obj->ob_type->tp_name == NULL \ + ? "(NULL)" \ + : obj->ob_type->tp_name) #define RAISE_NO_EMPTY_KEYS PyErr_SET_STRING(PyExc_ValueError, \ "empty keys are not allowed") + #define RAISE_LOCKED(type) PyErr_SET_VIM(_(type " is locked")) + #define RAISE_LOCKED_DICTIONARY RAISE_LOCKED("dictionary") + #define RAISE_LOCKED_LIST RAISE_LOCKED("list") + #define RAISE_UNDO_FAIL PyErr_SET_VIM("cannot save undo information") + #define RAISE_LINE_FAIL(act) PyErr_SET_VIM("cannot " act " line") + #define RAISE_KEY_ADD_FAIL(key) \ + PyErr_VIM_FORMAT("failed to add key '%s' to dictionary", key) + #define RAISE_INVALID_INDEX_TYPE(idx) \ + PyErr_FORMAT(PyExc_TypeError, "index must be int or slice, not %s", \ + Py_TYPE_NAME(idx)); #define INVALID_BUFFER_VALUE ((buf_T *)(-1)) #define INVALID_WINDOW_VALUE ((win_T *)(-1)) *************** *** 122,128 **** } else { ! PyErr_SET_STRING(PyExc_TypeError, "object must be string"); return NULL; } --- 138,150 ---- } else { ! PyErr_FORMAT(PyExc_TypeError, ! #if PY_MAJOR_VERSION < 3 ! "expected str() or unicode() instance, but got %s" ! #else ! "expected bytes() or str() instance, but got %s" ! #endif ! , Py_TYPE_NAME(object)); return NULL; } *************** *** 231,237 **** return 0; } ! PyErr_SET_STRING(PyExc_AttributeError, "invalid attribute"); return -1; } --- 253,259 ---- return 0; } ! PyErr_FORMAT(PyExc_AttributeError, "invalid attribute: %s", name); return -1; } *************** *** 967,977 **** { PyObject *fd, *pathname, *description; ! if (!PyTuple_Check(find_module_result) ! || PyTuple_GET_SIZE(find_module_result) != 3) { ! PyErr_SET_STRING(PyExc_TypeError, ! "expected 3-tuple as imp.find_module() result"); return NULL; } --- 989,1007 ---- { PyObject *fd, *pathname, *description; ! if (!PyTuple_Check(find_module_result)) { ! PyErr_FORMAT(PyExc_TypeError, ! "expected 3-tuple as imp.find_module() result, but got %s", ! Py_TYPE_NAME(find_module_result)); ! return NULL; ! } ! if (PyTuple_GET_SIZE(find_module_result) != 3) ! { ! PyErr_FORMAT(PyExc_TypeError, ! "expected 3-tuple as imp.find_module() result, but got " ! "tuple of size %d", ! (int) PyTuple_GET_SIZE(find_module_result)); return NULL; } *************** *** 1377,1383 **** } else { ! PyErr_SET_STRING(PyExc_AttributeError, "cannot set this attribute"); return -1; } } --- 1407,1413 ---- } else { ! PyErr_FORMAT(PyExc_AttributeError, "cannot set attribute %s", name); return -1; } } *************** *** 1459,1465 **** { if (dict->dv_lock) { ! PyErr_SET_VIM("dict is locked"); Py_DECREF(r); return NULL; } --- 1489,1495 ---- { if (dict->dv_lock) { ! RAISE_LOCKED_DICTIONARY; Py_DECREF(r); return NULL; } *************** *** 1562,1568 **** if (dict->dv_lock) { ! PyErr_SET_VIM("dict is locked"); return -1; } --- 1592,1598 ---- if (dict->dv_lock) { ! RAISE_LOCKED_DICTIONARY; return -1; } *************** *** 1614,1623 **** if (dict_add(dict, di) == FAIL) { - Py_XDECREF(todecref); vim_free(di); dictitem_free(di); ! PyErr_SET_VIM("failed to add key to dictionary"); return -1; } } --- 1644,1653 ---- if (dict_add(dict, di) == FAIL) { vim_free(di); dictitem_free(di); ! RAISE_KEY_ADD_FAIL(key); ! Py_XDECREF(todecref); return -1; } } *************** *** 1725,1731 **** if (dict->dv_lock) { ! PyErr_SET_VIM("dict is locked"); return NULL; } --- 1755,1761 ---- if (dict->dv_lock) { ! RAISE_LOCKED_DICTIONARY; return NULL; } *************** *** 1781,1788 **** { Py_DECREF(iterator); Py_DECREF(fast); ! PyErr_SET_STRING(PyExc_ValueError, ! "expected sequence element of size 2"); return NULL; } --- 1811,1820 ---- { Py_DECREF(iterator); Py_DECREF(fast); ! PyErr_FORMAT(PyExc_ValueError, ! "expected sequence element of size 2, " ! "but got sequence of size %d", ! PySequence_Fast_GET_SIZE(fast)); return NULL; } *************** *** 1823,1831 **** if (dict_add(dict, di) == FAIL) { Py_DECREF(iterator); dictitem_free(di); - PyErr_SET_VIM("failed to add key to dictionary"); return NULL; } } --- 1855,1863 ---- if (dict_add(dict, di) == FAIL) { + RAISE_KEY_ADD_FAIL(di->di_key); Py_DECREF(iterator); dictitem_free(di); return NULL; } } *************** *** 2085,2091 **** li = list_find(self->list, (long) index); if (li == NULL) { ! PyErr_SET_VIM("internal error: failed to get vim list item"); return NULL; } return ConvertToPyObject(&li->li_tv); --- 2117,2125 ---- li = list_find(self->list, (long) index); if (li == NULL) { ! /* No more suitable format specifications in python-2.3 */ ! PyErr_VIM_FORMAT("internal error: failed to get vim list item %d", ! (int) index); return NULL; } return ConvertToPyObject(&li->li_tv); *************** *** 2198,2204 **** if (l->lv_lock) { ! PyErr_SET_VIM("list is locked"); return -1; } if (index>length || (index==length && obj==NULL)) --- 2232,2238 ---- if (l->lv_lock) { ! RAISE_LOCKED_LIST; return -1; } if (index>length || (index==length && obj==NULL)) *************** *** 2252,2258 **** if (l->lv_lock) { ! PyErr_SET_VIM("list is locked"); return -1; } --- 2286,2292 ---- if (l->lv_lock) { ! RAISE_LOCKED_LIST; return -1; } *************** *** 2265,2271 **** li = list_find(l, (long) first); if (li == NULL) { ! PyErr_SET_VIM("internal error: no vim list item"); return -1; } if (last > first) --- 2299,2305 ---- li = list_find(l, (long) first); if (li == NULL) { ! PyErr_VIM_FORMAT("internal error: no vim list item %d", (int)first); return -1; } if (last > first) *************** *** 2315,2321 **** if (l->lv_lock) { ! PyErr_SET_VIM("list is locked"); return NULL; } --- 2349,2355 ---- if (l->lv_lock) { ! RAISE_LOCKED_LIST; return NULL; } *************** *** 2375,2381 **** } else { ! PyErr_SET_STRING(PyExc_AttributeError, "cannot set this attribute"); return -1; } } --- 2409,2415 ---- } else { ! PyErr_FORMAT(PyExc_AttributeError, "cannot set attribute %s", name); return -1; } } *************** *** 2410,2417 **** { if (!translated_function_exists(name)) { ! PyErr_SET_STRING(PyExc_ValueError, ! "unnamed function does not exist"); return NULL; } self->name = vim_strsave(name); --- 2444,2451 ---- { if (!translated_function_exists(name)) { ! PyErr_FORMAT(PyExc_ValueError, ! "unnamed function %s does not exist", name); return NULL; } self->name = vim_strsave(name); *************** *** 2422,2428 **** vim_strchr(name, AUTOLOAD_CHAR) == NULL)) == NULL) { ! PyErr_SET_STRING(PyExc_ValueError, "function does not exist"); return NULL; } --- 2456,2462 ---- vim_strchr(name, AUTOLOAD_CHAR) == NULL)) == NULL) { ! PyErr_FORMAT(PyExc_ValueError, "function %s does not exist", name); return NULL; } *************** *** 2515,2521 **** else if (error != OK) { result = NULL; ! PyErr_SET_VIM("failed to run function"); } else result = ConvertToPyObject(&rettv); --- 2549,2555 ---- else if (error != OK) { result = NULL; ! PyErr_VIM_FORMAT("failed to run function %s", (char *)name); } else result = ConvertToPyObject(&rettv); *************** *** 2770,2783 **** { if (self->opt_type == SREQ_GLOBAL) { ! PyErr_SET_STRING(PyExc_ValueError, "unable to unset global option"); Py_XDECREF(todecref); return -1; } else if (!(flags & SOPT_GLOBAL)) { ! PyErr_SET_STRING(PyExc_ValueError, "unable to unset option " ! "without global value"); Py_XDECREF(todecref); return -1; } --- 2804,2819 ---- { if (self->opt_type == SREQ_GLOBAL) { ! PyErr_FORMAT(PyExc_ValueError, ! "unable to unset global option %s", key); Py_XDECREF(todecref); return -1; } else if (!(flags & SOPT_GLOBAL)) { ! PyErr_FORMAT(PyExc_ValueError, ! "unable to unset option %s " ! "which does not have global value", key); Py_XDECREF(todecref); return -1; } *************** *** 3195,3201 **** if (strcmp(name, "buffer") == 0) { ! PyErr_SET_STRING(PyExc_TypeError, "readonly attribute"); return -1; } else if (strcmp(name, "cursor") == 0) --- 3231,3237 ---- if (strcmp(name, "buffer") == 0) { ! PyErr_SET_STRING(PyExc_TypeError, "readonly attribute: buffer"); return -1; } else if (strcmp(name, "cursor") == 0) *************** *** 3558,3566 **** VimTryStart(); if (u_savedel((linenr_T)n, 1L) == FAIL) ! PyErr_SET_VIM("cannot save undo information"); else if (ml_delete((linenr_T)n, FALSE) == FAIL) ! PyErr_SET_VIM("cannot delete line"); else { if (buf == savebuf) --- 3594,3602 ---- VimTryStart(); if (u_savedel((linenr_T)n, 1L) == FAIL) ! RAISE_UNDO_FAIL; else if (ml_delete((linenr_T)n, FALSE) == FAIL) ! RAISE_LINE_FAIL("delete"); else { if (buf == savebuf) *************** *** 3594,3605 **** if (u_savesub((linenr_T)n) == FAIL) { ! PyErr_SET_VIM("cannot save undo information"); vim_free(save); } else if (ml_replace((linenr_T)n, (char_u *)save, FALSE) == FAIL) { ! PyErr_SET_VIM("cannot replace line"); vim_free(save); } else --- 3630,3641 ---- if (u_savesub((linenr_T)n) == FAIL) { ! RAISE_UNDO_FAIL; vim_free(save); } else if (ml_replace((linenr_T)n, (char_u *)save, FALSE) == FAIL) { ! RAISE_LINE_FAIL("replace"); vim_free(save); } else *************** *** 3654,3667 **** switch_buffer(&savebuf, buf); if (u_savedel((linenr_T)lo, (long)n) == FAIL) ! PyErr_SET_VIM("cannot save undo information"); else { for (i = 0; i < n; ++i) { if (ml_delete((linenr_T)lo, FALSE) == FAIL) { ! PyErr_SET_VIM("cannot delete line"); break; } } --- 3690,3703 ---- switch_buffer(&savebuf, buf); if (u_savedel((linenr_T)lo, (long)n) == FAIL) ! RAISE_UNDO_FAIL; else { for (i = 0; i < n; ++i) { if (ml_delete((linenr_T)lo, FALSE) == FAIL) { ! RAISE_LINE_FAIL("delete"); break; } } *************** *** 3722,3728 **** switch_buffer(&savebuf, buf); if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL) ! PyErr_SET_VIM("cannot save undo information"); /* If the size of the range is reducing (ie, new_len < old_len) we * need to delete some old_len. We do this at the start, by --- 3758,3764 ---- switch_buffer(&savebuf, buf); if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL) ! RAISE_UNDO_FAIL; /* If the size of the range is reducing (ie, new_len < old_len) we * need to delete some old_len. We do this at the start, by *************** *** 3733,3739 **** for (i = 0; i < old_len - new_len; ++i) if (ml_delete((linenr_T)lo, FALSE) == FAIL) { ! PyErr_SET_VIM("cannot delete line"); break; } extra -= i; --- 3769,3775 ---- for (i = 0; i < old_len - new_len; ++i) if (ml_delete((linenr_T)lo, FALSE) == FAIL) { ! RAISE_LINE_FAIL("delete"); break; } extra -= i; *************** *** 3749,3755 **** if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], FALSE) == FAIL) { ! PyErr_SET_VIM("cannot replace line"); break; } } --- 3785,3791 ---- if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], FALSE) == FAIL) { ! RAISE_LINE_FAIL("replace"); break; } } *************** *** 3767,3773 **** if (ml_append((linenr_T)(lo + i - 1), (char_u *)array[i], 0, FALSE) == FAIL) { ! PyErr_SET_VIM("cannot insert line"); break; } vim_free(array[i]); --- 3803,3809 ---- if (ml_append((linenr_T)(lo + i - 1), (char_u *)array[i], 0, FALSE) == FAIL) { ! RAISE_LINE_FAIL("insert"); break; } vim_free(array[i]); *************** *** 3844,3852 **** switch_buffer(&savebuf, buf); if (u_save((linenr_T)n, (linenr_T)(n+1)) == FAIL) ! PyErr_SET_VIM("cannot save undo information"); else if (ml_append((linenr_T)n, (char_u *)str, 0, FALSE) == FAIL) ! PyErr_SET_VIM("cannot insert line"); else appended_lines_mark((linenr_T)n, 1L); --- 3880,3888 ---- switch_buffer(&savebuf, buf); if (u_save((linenr_T)n, (linenr_T)(n+1)) == FAIL) ! RAISE_UNDO_FAIL; else if (ml_append((linenr_T)n, (char_u *)str, 0, FALSE) == FAIL) ! RAISE_LINE_FAIL("insert"); else appended_lines_mark((linenr_T)n, 1L); *************** *** 3895,3901 **** switch_buffer(&savebuf, buf); if (u_save((linenr_T)n, (linenr_T)(n + 1)) == FAIL) ! PyErr_SET_VIM("cannot save undo information"); else { for (i = 0; i < size; ++i) --- 3931,3937 ---- switch_buffer(&savebuf, buf); if (u_save((linenr_T)n, (linenr_T)(n + 1)) == FAIL) ! RAISE_UNDO_FAIL; else { for (i = 0; i < size; ++i) *************** *** 3903,3909 **** if (ml_append((linenr_T)(n + i), (char_u *)array[i], 0, FALSE) == FAIL) { ! PyErr_SET_VIM("cannot insert line"); /* Free the rest of the lines */ while (i < size) --- 3939,3945 ---- if (ml_append((linenr_T)(n + i), (char_u *)array[i], 0, FALSE) == FAIL) { ! RAISE_LINE_FAIL("insert"); /* Free the rest of the lines */ while (i < size) *************** *** 4668,4674 **** if (value->ob_type != &BufferType) { ! PyErr_SET_STRING(PyExc_TypeError, "expected vim.Buffer object"); return -1; } --- 4704,4712 ---- if (value->ob_type != &BufferType) { ! PyErr_FORMAT(PyExc_TypeError, ! "expected vim.Buffer object, but got %s", ! Py_TYPE_NAME(value)); return -1; } *************** *** 4681,4687 **** { if (VimTryEnd()) return -1; ! PyErr_SET_VIM("failed to switch to given buffer"); return -1; } --- 4719,4725 ---- { if (VimTryEnd()) return -1; ! PyErr_VIM_FORMAT("failed to switch to buffer %d", count); return -1; } *************** *** 4693,4699 **** if (value->ob_type != &WindowType) { ! PyErr_SET_STRING(PyExc_TypeError, "expected vim.Window object"); return -1; } --- 4731,4739 ---- if (value->ob_type != &WindowType) { ! PyErr_FORMAT(PyExc_TypeError, ! "expected vim.Window object, but got %s", ! Py_TYPE_NAME(value)); return -1; } *************** *** 4725,4731 **** { if (value->ob_type != &TabPageType) { ! PyErr_SET_STRING(PyExc_TypeError, "expected vim.TabPage object"); return -1; } --- 4765,4773 ---- { if (value->ob_type != &TabPageType) { ! PyErr_FORMAT(PyExc_TypeError, ! "expected vim.TabPage object, but got %s", ! Py_TYPE_NAME(value)); return -1; } *************** *** 5003,5012 **** if (dict_add(dict, di) == FAIL) { clear_tv(&di->di_tv); vim_free(di); dict_unref(dict); - PyErr_SET_VIM("failed to add key to dictionary"); return -1; } } --- 5045,5054 ---- if (dict_add(dict, di) == FAIL) { + RAISE_KEY_ADD_FAIL(di->di_key); clear_tv(&di->di_tv); vim_free(di); dict_unref(dict); return -1; } } *************** *** 5105,5114 **** if (dict_add(dict, di) == FAIL) { Py_DECREF(iterator); dictitem_free(di); dict_unref(dict); - PyErr_SET_VIM("failed to add key to dictionary"); return -1; } } --- 5147,5156 ---- if (dict_add(dict, di) == FAIL) { + RAISE_KEY_ADD_FAIL(di->di_key); Py_DECREF(iterator); dictitem_free(di); dict_unref(dict); return -1; } } *************** *** 5216,5223 **** r = convert_dl(obj, tv, pymap_to_tv, lookup_dict); else { ! PyErr_SET_STRING(PyExc_TypeError, ! "unable to convert object to vim dictionary"); r = -1; } Py_DECREF(lookup_dict); --- 5258,5266 ---- r = convert_dl(obj, tv, pymap_to_tv, lookup_dict); else { ! PyErr_FORMAT(PyExc_TypeError, ! "unable to convert %s to vim dictionary", ! Py_TYPE_NAME(obj)); r = -1; } Py_DECREF(lookup_dict); *************** *** 5326,5333 **** return convert_dl(obj, tv, pymap_to_tv, lookup_dict); else { ! PyErr_SET_STRING(PyExc_TypeError, ! "unable to convert to vim structure"); return -1; } return 0; --- 5369,5377 ---- return convert_dl(obj, tv, pymap_to_tv, lookup_dict); else { ! PyErr_FORMAT(PyExc_TypeError, ! "unable to convert %s to vim structure", ! Py_TYPE_NAME(obj)); return -1; } return 0; *************** *** 5338,5344 **** { if (tv == NULL) { ! PyErr_SET_VIM("NULL reference passed"); return NULL; } switch (tv->v_type) --- 5382,5388 ---- { if (tv == NULL) { ! PyErr_SET_VIM("internal error: NULL reference passed"); return NULL; } switch (tv->v_type) *** ../vim-7.3.1229/src/if_python3.c 2013-06-23 13:28:11.000000000 +0200 --- src/if_python3.c 2013-06-23 13:31:16.000000000 +0200 *************** *** 122,127 **** --- 122,128 ---- # define PyDict_SetItemString py3_PyDict_SetItemString # define PyErr_BadArgument py3_PyErr_BadArgument # define PyErr_Clear py3_PyErr_Clear + # define PyErr_Format py3_PyErr_Format # define PyErr_PrintEx py3_PyErr_PrintEx # define PyErr_NoMemory py3_PyErr_NoMemory # define PyErr_Occurred py3_PyErr_Occurred *************** *** 337,342 **** --- 338,344 ---- static void* (*py3_PyMem_Malloc)(size_t); static int (*py3_Py_IsInitialized)(void); static void (*py3_PyErr_Clear)(void); + static PyObject* (*py3_PyErr_Format)(PyObject *, const char *, ...); static void (*py3_PyErr_PrintEx)(int); static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *); static iternextfunc py3__PyObject_NextNotImplemented; *************** *** 485,490 **** --- 487,493 ---- {"_Py_FalseStruct", (PYTHON_PROC*)&py3__Py_FalseStruct}, {"_Py_TrueStruct", (PYTHON_PROC*)&py3__Py_TrueStruct}, {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear}, + {"PyErr_Format", (PYTHON_PROC*)&py3_PyErr_Format}, {"PyErr_PrintEx", (PYTHON_PROC*)&py3_PyErr_PrintEx}, {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, *************** *** 1169,1175 **** } else { ! PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); return NULL; } } --- 1172,1178 ---- } else { ! RAISE_INVALID_INDEX_TYPE(idx); return NULL; } } *************** *** 1203,1209 **** } else { ! PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); return -1; } } --- 1206,1212 ---- } else { ! RAISE_INVALID_INDEX_TYPE(idx); return -1; } } *************** *** 1285,1291 **** } else { ! PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); return NULL; } } --- 1288,1294 ---- } else { ! RAISE_INVALID_INDEX_TYPE(idx); return NULL; } } *************** *** 1312,1318 **** } else { ! PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); return -1; } } --- 1315,1321 ---- } else { ! RAISE_INVALID_INDEX_TYPE(idx); return -1; } } *************** *** 1491,1497 **** } else { ! PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); return NULL; } } --- 1494,1500 ---- } else { ! RAISE_INVALID_INDEX_TYPE(idx); return NULL; } } *************** *** 1515,1521 **** } else { ! PyErr_SET_STRING(PyExc_TypeError, "index must be int or slice"); return -1; } } --- 1518,1524 ---- } else { ! RAISE_INVALID_INDEX_TYPE(idx); return -1; } } *** ../vim-7.3.1229/src/if_python.c 2013-06-23 13:11:14.000000000 +0200 --- src/if_python.c 2013-06-23 13:31:16.000000000 +0200 *************** *** 160,165 **** --- 160,166 ---- # define PyErr_BadArgument dll_PyErr_BadArgument # define PyErr_NewException dll_PyErr_NewException # define PyErr_Clear dll_PyErr_Clear + # define PyErr_Format dll_PyErr_Format # define PyErr_PrintEx dll_PyErr_PrintEx # define PyErr_NoMemory dll_PyErr_NoMemory # define PyErr_Occurred dll_PyErr_Occurred *************** *** 301,306 **** --- 302,308 ---- static int(*dll_PyErr_BadArgument)(void); static PyObject *(*dll_PyErr_NewException)(char *, PyObject *, PyObject *); static void(*dll_PyErr_Clear)(void); + static PyObject*(*dll_PyErr_Format)(PyObject *, const char *, ...); static void(*dll_PyErr_PrintEx)(int); static PyObject*(*dll_PyErr_NoMemory)(void); static PyObject*(*dll_PyErr_Occurred)(void); *************** *** 473,478 **** --- 475,481 ---- {"PyErr_BadArgument", (PYTHON_PROC*)&dll_PyErr_BadArgument}, {"PyErr_NewException", (PYTHON_PROC*)&dll_PyErr_NewException}, {"PyErr_Clear", (PYTHON_PROC*)&dll_PyErr_Clear}, + {"PyErr_Format", (PYTHON_PROC*)&dll_PyErr_Format}, {"PyErr_PrintEx", (PYTHON_PROC*)&dll_PyErr_PrintEx}, {"PyErr_NoMemory", (PYTHON_PROC*)&dll_PyErr_NoMemory}, {"PyErr_Occurred", (PYTHON_PROC*)&dll_PyErr_Occurred}, *** ../vim-7.3.1229/src/testdir/test86.ok 2013-06-23 13:00:40.000000000 +0200 --- src/testdir/test86.ok 2013-06-23 13:44:43.000000000 +0200 *************** *** 439,544 **** >> OutputSetattr del sys.stdout.softspace:AttributeError:("can't delete OutputObject attributes",) sys.stdout.softspace = []:TypeError:('softspace must be an integer',) ! sys.stdout.attr = None:AttributeError:('invalid attribute',) >> 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:('object must be string',) > VimToPython > VimEval ! vim.eval(1):TypeError:('object must be string',) > VimEvalPy ! vim.bindeval(1):TypeError:('object must be string',) > VimStrwidth ! vim.strwidth(1):TypeError:('object must be string',) > Dictionary >> DictionaryConstructor ! vim.Dictionary("abc"):ValueError:('expected sequence element of size 2',) >> 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 this attribute',) ! d.xxx = True:AttributeError:('cannot set this attribute',) >> _DictionaryItem d.get("a", 2, 3):TypeError:('function takes at most 2 arguments (3 given)',) >>> Testing StringToChars using d.get(%s) ! d.get(1):TypeError:('object must be string',) d.get(u"\0"):TypeError:('expected string without null bytes',) d.get("\0"):TypeError:('expected string without null bytes',) <<< Finished d.pop("a"):KeyError:('a',) ! dl.pop("a"):error:('dict is locked',) >> DictionaryIterNext for i in ned: ned["a"] = 1:RuntimeError:('hashtab changed during iteration',) >> DictionaryAssItem ! dl["b"] = 1:error:('dict is locked',) >>> Testing StringToChars using d[%s] = 1 ! d[1] = 1:TypeError:('object must be string',) d[u"\0"] = 1:TypeError:('expected string without null bytes',) d["\0"] = 1:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = {%s : 1} ! d["a"] = {1 : 1}:TypeError:('object must be string',) d["a"] = {u"\0" : 1}:TypeError:('expected string without null bytes',) d["a"] = {"\0" : 1}:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = {"abc" : {%s : 1}} ! d["a"] = {"abc" : {1 : 1}}:TypeError:('object must be string',) d["a"] = {"abc" : {u"\0" : 1}}:TypeError:('expected string without null bytes',) d["a"] = {"abc" : {"\0" : 1}}:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = {"abc" : Mapping({%s : 1})} ! d["a"] = {"abc" : Mapping({1 : 1})}:TypeError:('object must be string',) d["a"] = {"abc" : Mapping({u"\0" : 1})}:TypeError:('expected string without null bytes',) d["a"] = {"abc" : Mapping({"\0" : 1})}:TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d["a"] = {"abc" : %s} ! d["a"] = {"abc" : FailingIter()}:TypeError:('unable to convert to vim structure',) d["a"] = {"abc" : FailingIterNext()}:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d["a"] = {"abc" : %s} ! d["a"] = {"abc" : None}:TypeError:('unable to convert to vim structure',) d["a"] = {"abc" : {"": 1}}:ValueError:('empty keys are not allowed',) d["a"] = {"abc" : {u"": 1}}:ValueError:('empty keys are not allowed',) d["a"] = {"abc" : FailingMapping()}:NotImplementedError:() d["a"] = {"abc" : FailingMappingKey()}:NotImplementedError:() <<< Finished >>> Testing StringToChars using d["a"] = Mapping({%s : 1}) ! d["a"] = Mapping({1 : 1}):TypeError:('object must be string',) d["a"] = Mapping({u"\0" : 1}):TypeError:('expected string without null bytes',) d["a"] = Mapping({"\0" : 1}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({"abc" : {%s : 1}}) ! d["a"] = Mapping({"abc" : {1 : 1}}):TypeError:('object must be string',) d["a"] = Mapping({"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',) d["a"] = Mapping({"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({"abc" : Mapping({%s : 1})}) ! d["a"] = Mapping({"abc" : Mapping({1 : 1})}):TypeError:('object must be string',) d["a"] = Mapping({"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',) d["a"] = Mapping({"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d["a"] = Mapping({"abc" : %s}) ! d["a"] = Mapping({"abc" : FailingIter()}):TypeError:('unable to convert to vim structure',) d["a"] = Mapping({"abc" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abc" : %s}) ! d["a"] = Mapping({"abc" : None}):TypeError:('unable to convert to vim structure',) d["a"] = Mapping({"abc" : {"": 1}}):ValueError:('empty keys are not allowed',) d["a"] = Mapping({"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',) d["a"] = Mapping({"abc" : FailingMapping()}):NotImplementedError:() d["a"] = Mapping({"abc" : FailingMappingKey()}):NotImplementedError:() <<< Finished >>> Testing *Iter* using d["a"] = %s ! d["a"] = FailingIter():TypeError:('unable to convert to vim structure',) d["a"] = FailingIterNext():NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d["a"] = %s ! d["a"] = None:TypeError:('unable to convert 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:() --- 439,544 ---- >> OutputSetattr del sys.stdout.softspace:AttributeError:("can't delete OutputObject attributes",) sys.stdout.softspace = []:TypeError:('softspace must be an integer',) ! 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("abc"):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',) >> _DictionaryItem d.get("a", 2, 3):TypeError:('function takes at most 2 arguments (3 given)',) >>> Testing StringToChars using d.get(%s) ! d.get(1):TypeError:('expected str() or unicode() instance, but got int',) d.get(u"\0"):TypeError:('expected string without null bytes',) d.get("\0"):TypeError:('expected string without null bytes',) <<< Finished d.pop("a"):KeyError:('a',) ! dl.pop("a"):error:('dictionary is locked',) >> DictionaryIterNext for i in ned: ned["a"] = 1:RuntimeError:('hashtab changed during iteration',) >> DictionaryAssItem ! dl["b"] = 1:error:('dictionary is locked',) >>> Testing StringToChars using d[%s] = 1 ! d[1] = 1:TypeError:('expected str() or unicode() instance, but got int',) d[u"\0"] = 1:TypeError:('expected string without null bytes',) d["\0"] = 1:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = {%s : 1} ! d["a"] = {1 : 1}:TypeError:('expected str() or unicode() instance, but got int',) d["a"] = {u"\0" : 1}:TypeError:('expected string without null bytes',) d["a"] = {"\0" : 1}:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = {"abc" : {%s : 1}} ! d["a"] = {"abc" : {1 : 1}}:TypeError:('expected str() or unicode() instance, but got int',) d["a"] = {"abc" : {u"\0" : 1}}:TypeError:('expected string without null bytes',) d["a"] = {"abc" : {"\0" : 1}}:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = {"abc" : Mapping({%s : 1})} ! d["a"] = {"abc" : Mapping({1 : 1})}:TypeError:('expected str() or unicode() instance, but got int',) d["a"] = {"abc" : Mapping({u"\0" : 1})}:TypeError:('expected string without null bytes',) d["a"] = {"abc" : Mapping({"\0" : 1})}:TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d["a"] = {"abc" : %s} ! d["a"] = {"abc" : FailingIter()}:TypeError:('unable to convert FailingIter to vim structure',) d["a"] = {"abc" : FailingIterNext()}:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d["a"] = {"abc" : %s} ! d["a"] = {"abc" : None}:TypeError:('unable to convert NoneType to vim structure',) d["a"] = {"abc" : {"": 1}}:ValueError:('empty keys are not allowed',) d["a"] = {"abc" : {u"": 1}}:ValueError:('empty keys are not allowed',) d["a"] = {"abc" : FailingMapping()}:NotImplementedError:() d["a"] = {"abc" : 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',) d["a"] = Mapping({u"\0" : 1}):TypeError:('expected string without null bytes',) d["a"] = Mapping({"\0" : 1}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({"abc" : {%s : 1}}) ! d["a"] = Mapping({"abc" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',) d["a"] = Mapping({"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',) d["a"] = Mapping({"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({"abc" : Mapping({%s : 1})}) ! d["a"] = Mapping({"abc" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',) d["a"] = Mapping({"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',) d["a"] = Mapping({"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d["a"] = Mapping({"abc" : %s}) ! d["a"] = Mapping({"abc" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) d["a"] = Mapping({"abc" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abc" : %s}) ! d["a"] = Mapping({"abc" : None}):TypeError:('unable to convert NoneType to vim structure',) d["a"] = Mapping({"abc" : {"": 1}}):ValueError:('empty keys are not allowed',) d["a"] = Mapping({"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',) d["a"] = Mapping({"abc" : FailingMapping()}):NotImplementedError:() d["a"] = Mapping({"abc" : 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:() *************** *** 550,601 **** d.update(FailingMapping()):NotImplementedError:() d.update([FailingIterNext()]):NotImplementedError:() >>> Testing StringToChars using d.update({%s : 1}) ! d.update({1 : 1}):TypeError:('object must be string',) d.update({u"\0" : 1}):TypeError:('expected string without null bytes',) d.update({"\0" : 1}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update({"abc" : {%s : 1}}) ! d.update({"abc" : {1 : 1}}):TypeError:('object must be string',) d.update({"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',) d.update({"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update({"abc" : Mapping({%s : 1})}) ! d.update({"abc" : Mapping({1 : 1})}):TypeError:('object must be string',) d.update({"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',) d.update({"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d.update({"abc" : %s}) ! d.update({"abc" : FailingIter()}):TypeError:('unable to convert to vim structure',) d.update({"abc" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update({"abc" : %s}) ! d.update({"abc" : None}):TypeError:('unable to convert to vim structure',) d.update({"abc" : {"": 1}}):ValueError:('empty keys are not allowed',) d.update({"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',) d.update({"abc" : FailingMapping()}):NotImplementedError:() d.update({"abc" : FailingMappingKey()}):NotImplementedError:() <<< Finished >>> Testing StringToChars using d.update(Mapping({%s : 1})) ! d.update(Mapping({1 : 1})):TypeError:('object must be string',) d.update(Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',) d.update(Mapping({"\0" : 1})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update(Mapping({"abc" : {%s : 1}})) ! d.update(Mapping({"abc" : {1 : 1}})):TypeError:('object must be string',) d.update(Mapping({"abc" : {u"\0" : 1}})):TypeError:('expected string without null bytes',) d.update(Mapping({"abc" : {"\0" : 1}})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update(Mapping({"abc" : Mapping({%s : 1})})) ! d.update(Mapping({"abc" : Mapping({1 : 1})})):TypeError:('object must be string',) d.update(Mapping({"abc" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',) d.update(Mapping({"abc" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d.update(Mapping({"abc" : %s})) ! d.update(Mapping({"abc" : FailingIter()})):TypeError:('unable to convert to vim structure',) d.update(Mapping({"abc" : FailingIterNext()})):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update(Mapping({"abc" : %s})) ! d.update(Mapping({"abc" : None})):TypeError:('unable to convert to vim structure',) d.update(Mapping({"abc" : {"": 1}})):ValueError:('empty keys are not allowed',) d.update(Mapping({"abc" : {u"": 1}})):ValueError:('empty keys are not allowed',) d.update(Mapping({"abc" : FailingMapping()})):NotImplementedError:() --- 550,601 ---- 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',) d.update({"\0" : 1}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update({"abc" : {%s : 1}}) ! d.update({"abc" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',) d.update({"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',) d.update({"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update({"abc" : Mapping({%s : 1})}) ! d.update({"abc" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',) d.update({"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',) d.update({"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d.update({"abc" : %s}) ! d.update({"abc" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) d.update({"abc" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update({"abc" : %s}) ! d.update({"abc" : None}):TypeError:('unable to convert NoneType to vim structure',) d.update({"abc" : {"": 1}}):ValueError:('empty keys are not allowed',) d.update({"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',) d.update({"abc" : FailingMapping()}):NotImplementedError:() d.update({"abc" : 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',) d.update(Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',) d.update(Mapping({"\0" : 1})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update(Mapping({"abc" : {%s : 1}})) ! d.update(Mapping({"abc" : {1 : 1}})):TypeError:('expected str() or unicode() instance, but got int',) d.update(Mapping({"abc" : {u"\0" : 1}})):TypeError:('expected string without null bytes',) d.update(Mapping({"abc" : {"\0" : 1}})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update(Mapping({"abc" : Mapping({%s : 1})})) ! d.update(Mapping({"abc" : Mapping({1 : 1})})):TypeError:('expected str() or unicode() instance, but got int',) d.update(Mapping({"abc" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',) d.update(Mapping({"abc" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d.update(Mapping({"abc" : %s})) ! d.update(Mapping({"abc" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',) d.update(Mapping({"abc" : FailingIterNext()})):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update(Mapping({"abc" : %s})) ! d.update(Mapping({"abc" : None})):TypeError:('unable to convert NoneType to vim structure',) d.update(Mapping({"abc" : {"": 1}})):ValueError:('empty keys are not allowed',) d.update(Mapping({"abc" : {u"": 1}})):ValueError:('empty keys are not allowed',) d.update(Mapping({"abc" : FailingMapping()})):NotImplementedError:() *************** *** 613,680 **** d.update(FailingMappingKey()):NotImplementedError:() <<< Finished >>> Testing StringToChars using d.update(((%s, 0),)) ! d.update(((1, 0),)):TypeError:('object must be string',) d.update(((u"\0", 0),)):TypeError:('expected string without null bytes',) d.update((("\0", 0),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", {%s : 1}),)) ! d.update((("a", {1 : 1}),)):TypeError:('object must be string',) d.update((("a", {u"\0" : 1}),)):TypeError:('expected string without null bytes',) d.update((("a", {"\0" : 1}),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", {"abc" : {%s : 1}}),)) ! d.update((("a", {"abc" : {1 : 1}}),)):TypeError:('object must be string',) d.update((("a", {"abc" : {u"\0" : 1}}),)):TypeError:('expected string without null bytes',) d.update((("a", {"abc" : {"\0" : 1}}),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", {"abc" : Mapping({%s : 1})}),)) ! d.update((("a", {"abc" : Mapping({1 : 1})}),)):TypeError:('object must be string',) d.update((("a", {"abc" : Mapping({u"\0" : 1})}),)):TypeError:('expected string without null bytes',) d.update((("a", {"abc" : Mapping({"\0" : 1})}),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d.update((("a", {"abc" : %s}),)) ! d.update((("a", {"abc" : FailingIter()}),)):TypeError:('unable to convert to vim structure',) d.update((("a", {"abc" : FailingIterNext()}),)):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", {"abc" : %s}),)) ! d.update((("a", {"abc" : None}),)):TypeError:('unable to convert to vim structure',) d.update((("a", {"abc" : {"": 1}}),)):ValueError:('empty keys are not allowed',) d.update((("a", {"abc" : {u"": 1}}),)):ValueError:('empty keys are not allowed',) d.update((("a", {"abc" : FailingMapping()}),)):NotImplementedError:() d.update((("a", {"abc" : FailingMappingKey()}),)):NotImplementedError:() <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),)) ! d.update((("a", Mapping({1 : 1})),)):TypeError:('object must be string',) d.update((("a", Mapping({u"\0" : 1})),)):TypeError:('expected string without null bytes',) d.update((("a", Mapping({"\0" : 1})),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({"abc" : {%s : 1}})),)) ! d.update((("a", Mapping({"abc" : {1 : 1}})),)):TypeError:('object must be string',) d.update((("a", Mapping({"abc" : {u"\0" : 1}})),)):TypeError:('expected string without null bytes',) d.update((("a", Mapping({"abc" : {"\0" : 1}})),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({"abc" : Mapping({%s : 1})})),)) ! d.update((("a", Mapping({"abc" : Mapping({1 : 1})})),)):TypeError:('object must be string',) d.update((("a", Mapping({"abc" : Mapping({u"\0" : 1})})),)):TypeError:('expected string without null bytes',) d.update((("a", Mapping({"abc" : Mapping({"\0" : 1})})),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d.update((("a", Mapping({"abc" : %s})),)) ! d.update((("a", Mapping({"abc" : FailingIter()})),)):TypeError:('unable to convert to vim structure',) d.update((("a", Mapping({"abc" : FailingIterNext()})),)):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abc" : %s})),)) ! d.update((("a", Mapping({"abc" : None})),)):TypeError:('unable to convert to vim structure',) d.update((("a", Mapping({"abc" : {"": 1}})),)):ValueError:('empty keys are not allowed',) d.update((("a", Mapping({"abc" : {u"": 1}})),)):ValueError:('empty keys are not allowed',) d.update((("a", Mapping({"abc" : FailingMapping()})),)):NotImplementedError:() d.update((("a", Mapping({"abc" : FailingMappingKey()})),)):NotImplementedError:() <<< Finished >>> Testing *Iter* using d.update((("a", %s),)) ! d.update((("a", FailingIter()),)):TypeError:('unable to convert to vim structure',) d.update((("a", FailingIterNext()),)):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", %s),)) ! d.update((("a", None),)):TypeError:('unable to convert 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:() --- 613,680 ---- 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',) d.update(((u"\0", 0),)):TypeError:('expected string without null bytes',) d.update((("\0", 0),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", {%s : 1}),)) ! d.update((("a", {1 : 1}),)):TypeError:('expected str() or unicode() instance, but got int',) d.update((("a", {u"\0" : 1}),)):TypeError:('expected string without null bytes',) d.update((("a", {"\0" : 1}),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", {"abc" : {%s : 1}}),)) ! d.update((("a", {"abc" : {1 : 1}}),)):TypeError:('expected str() or unicode() instance, but got int',) d.update((("a", {"abc" : {u"\0" : 1}}),)):TypeError:('expected string without null bytes',) d.update((("a", {"abc" : {"\0" : 1}}),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", {"abc" : Mapping({%s : 1})}),)) ! d.update((("a", {"abc" : Mapping({1 : 1})}),)):TypeError:('expected str() or unicode() instance, but got int',) d.update((("a", {"abc" : Mapping({u"\0" : 1})}),)):TypeError:('expected string without null bytes',) d.update((("a", {"abc" : Mapping({"\0" : 1})}),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d.update((("a", {"abc" : %s}),)) ! d.update((("a", {"abc" : FailingIter()}),)):TypeError:('unable to convert FailingIter to vim structure',) d.update((("a", {"abc" : FailingIterNext()}),)):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", {"abc" : %s}),)) ! d.update((("a", {"abc" : None}),)):TypeError:('unable to convert NoneType to vim structure',) d.update((("a", {"abc" : {"": 1}}),)):ValueError:('empty keys are not allowed',) d.update((("a", {"abc" : {u"": 1}}),)):ValueError:('empty keys are not allowed',) d.update((("a", {"abc" : FailingMapping()}),)):NotImplementedError:() d.update((("a", {"abc" : 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',) d.update((("a", Mapping({u"\0" : 1})),)):TypeError:('expected string without null bytes',) d.update((("a", Mapping({"\0" : 1})),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({"abc" : {%s : 1}})),)) ! d.update((("a", Mapping({"abc" : {1 : 1}})),)):TypeError:('expected str() or unicode() instance, but got int',) d.update((("a", Mapping({"abc" : {u"\0" : 1}})),)):TypeError:('expected string without null bytes',) d.update((("a", Mapping({"abc" : {"\0" : 1}})),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({"abc" : Mapping({%s : 1})})),)) ! d.update((("a", Mapping({"abc" : Mapping({1 : 1})})),)):TypeError:('expected str() or unicode() instance, but got int',) d.update((("a", Mapping({"abc" : Mapping({u"\0" : 1})})),)):TypeError:('expected string without null bytes',) d.update((("a", Mapping({"abc" : Mapping({"\0" : 1})})),)):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using d.update((("a", Mapping({"abc" : %s})),)) ! d.update((("a", Mapping({"abc" : FailingIter()})),)):TypeError:('unable to convert FailingIter to vim structure',) d.update((("a", Mapping({"abc" : FailingIterNext()})),)):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abc" : %s})),)) ! d.update((("a", Mapping({"abc" : None})),)):TypeError:('unable to convert NoneType to vim structure',) d.update((("a", Mapping({"abc" : {"": 1}})),)):ValueError:('empty keys are not allowed',) d.update((("a", Mapping({"abc" : {u"": 1}})),)):ValueError:('empty keys are not allowed',) d.update((("a", Mapping({"abc" : FailingMapping()})),)):NotImplementedError:() d.update((("a", Mapping({"abc" : 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:() *************** *** 689,751 **** 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 StringToChars using vim.List([{%s : 1}]) ! vim.List([{1 : 1}]):TypeError:('object must be string',) vim.List([{u"\0" : 1}]):TypeError:('expected string without null bytes',) vim.List([{"\0" : 1}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using vim.List([{"abc" : {%s : 1}}]) ! vim.List([{"abc" : {1 : 1}}]):TypeError:('object must be string',) vim.List([{"abc" : {u"\0" : 1}}]):TypeError:('expected string without null bytes',) vim.List([{"abc" : {"\0" : 1}}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using vim.List([{"abc" : Mapping({%s : 1})}]) ! vim.List([{"abc" : Mapping({1 : 1})}]):TypeError:('object must be string',) vim.List([{"abc" : Mapping({u"\0" : 1})}]):TypeError:('expected string without null bytes',) vim.List([{"abc" : Mapping({"\0" : 1})}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using vim.List([{"abc" : %s}]) ! vim.List([{"abc" : FailingIter()}]):TypeError:('unable to convert to vim structure',) vim.List([{"abc" : FailingIterNext()}]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using vim.List([{"abc" : %s}]) ! vim.List([{"abc" : None}]):TypeError:('unable to convert to vim structure',) vim.List([{"abc" : {"": 1}}]):ValueError:('empty keys are not allowed',) vim.List([{"abc" : {u"": 1}}]):ValueError:('empty keys are not allowed',) vim.List([{"abc" : FailingMapping()}]):NotImplementedError:() vim.List([{"abc" : FailingMappingKey()}]):NotImplementedError:() <<< Finished >>> Testing StringToChars using vim.List([Mapping({%s : 1})]) ! vim.List([Mapping({1 : 1})]):TypeError:('object must be string',) vim.List([Mapping({u"\0" : 1})]):TypeError:('expected string without null bytes',) vim.List([Mapping({"\0" : 1})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using vim.List([Mapping({"abc" : {%s : 1}})]) ! vim.List([Mapping({"abc" : {1 : 1}})]):TypeError:('object must be string',) vim.List([Mapping({"abc" : {u"\0" : 1}})]):TypeError:('expected string without null bytes',) vim.List([Mapping({"abc" : {"\0" : 1}})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using vim.List([Mapping({"abc" : Mapping({%s : 1})})]) ! vim.List([Mapping({"abc" : Mapping({1 : 1})})]):TypeError:('object must be string',) vim.List([Mapping({"abc" : Mapping({u"\0" : 1})})]):TypeError:('expected string without null bytes',) vim.List([Mapping({"abc" : Mapping({"\0" : 1})})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using vim.List([Mapping({"abc" : %s})]) ! vim.List([Mapping({"abc" : FailingIter()})]):TypeError:('unable to convert to vim structure',) vim.List([Mapping({"abc" : FailingIterNext()})]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using vim.List([Mapping({"abc" : %s})]) ! vim.List([Mapping({"abc" : None})]):TypeError:('unable to convert to vim structure',) vim.List([Mapping({"abc" : {"": 1}})]):ValueError:('empty keys are not allowed',) vim.List([Mapping({"abc" : {u"": 1}})]):ValueError:('empty keys are not allowed',) vim.List([Mapping({"abc" : FailingMapping()})]):NotImplementedError:() vim.List([Mapping({"abc" : FailingMappingKey()})]):NotImplementedError:() <<< Finished >>> Testing *Iter* using vim.List([%s]) ! vim.List([FailingIter()]):TypeError:('unable to convert to vim structure',) vim.List([FailingIterNext()]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using vim.List([%s]) ! vim.List([None]):TypeError:('unable to convert 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:() --- 689,751 ---- 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 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',) vim.List([{"\0" : 1}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using vim.List([{"abc" : {%s : 1}}]) ! vim.List([{"abc" : {1 : 1}}]):TypeError:('expected str() or unicode() instance, but got int',) vim.List([{"abc" : {u"\0" : 1}}]):TypeError:('expected string without null bytes',) vim.List([{"abc" : {"\0" : 1}}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using vim.List([{"abc" : Mapping({%s : 1})}]) ! vim.List([{"abc" : Mapping({1 : 1})}]):TypeError:('expected str() or unicode() instance, but got int',) vim.List([{"abc" : Mapping({u"\0" : 1})}]):TypeError:('expected string without null bytes',) vim.List([{"abc" : Mapping({"\0" : 1})}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using vim.List([{"abc" : %s}]) ! vim.List([{"abc" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',) vim.List([{"abc" : FailingIterNext()}]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using vim.List([{"abc" : %s}]) ! vim.List([{"abc" : None}]):TypeError:('unable to convert NoneType to vim structure',) vim.List([{"abc" : {"": 1}}]):ValueError:('empty keys are not allowed',) vim.List([{"abc" : {u"": 1}}]):ValueError:('empty keys are not allowed',) vim.List([{"abc" : FailingMapping()}]):NotImplementedError:() vim.List([{"abc" : 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',) vim.List([Mapping({u"\0" : 1})]):TypeError:('expected string without null bytes',) vim.List([Mapping({"\0" : 1})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using vim.List([Mapping({"abc" : {%s : 1}})]) ! vim.List([Mapping({"abc" : {1 : 1}})]):TypeError:('expected str() or unicode() instance, but got int',) vim.List([Mapping({"abc" : {u"\0" : 1}})]):TypeError:('expected string without null bytes',) vim.List([Mapping({"abc" : {"\0" : 1}})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using vim.List([Mapping({"abc" : Mapping({%s : 1})})]) ! vim.List([Mapping({"abc" : Mapping({1 : 1})})]):TypeError:('expected str() or unicode() instance, but got int',) vim.List([Mapping({"abc" : Mapping({u"\0" : 1})})]):TypeError:('expected string without null bytes',) vim.List([Mapping({"abc" : Mapping({"\0" : 1})})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using vim.List([Mapping({"abc" : %s})]) ! vim.List([Mapping({"abc" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',) vim.List([Mapping({"abc" : FailingIterNext()})]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using vim.List([Mapping({"abc" : %s})]) ! vim.List([Mapping({"abc" : None})]):TypeError:('unable to convert NoneType to vim structure',) vim.List([Mapping({"abc" : {"": 1}})]):ValueError:('empty keys are not allowed',) vim.List([Mapping({"abc" : {u"": 1}})]):ValueError:('empty keys are not allowed',) vim.List([Mapping({"abc" : FailingMapping()})]):NotImplementedError:() vim.List([Mapping({"abc" : 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:() *************** *** 759,821 **** >> ListAssSlice ll[1:100] = "abc":error:('list is locked',) >>> Testing StringToChars using l[:] = [{%s : 1}] ! l[:] = [{1 : 1}]:TypeError:('object must be string',) l[:] = [{u"\0" : 1}]:TypeError:('expected string without null bytes',) l[:] = [{"\0" : 1}]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l[:] = [{"abc" : {%s : 1}}] ! l[:] = [{"abc" : {1 : 1}}]:TypeError:('object must be string',) l[:] = [{"abc" : {u"\0" : 1}}]:TypeError:('expected string without null bytes',) l[:] = [{"abc" : {"\0" : 1}}]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l[:] = [{"abc" : Mapping({%s : 1})}] ! l[:] = [{"abc" : Mapping({1 : 1})}]:TypeError:('object must be string',) l[:] = [{"abc" : Mapping({u"\0" : 1})}]:TypeError:('expected string without null bytes',) l[:] = [{"abc" : Mapping({"\0" : 1})}]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using l[:] = [{"abc" : %s}] ! l[:] = [{"abc" : FailingIter()}]:TypeError:('unable to convert to vim structure',) l[:] = [{"abc" : FailingIterNext()}]:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l[:] = [{"abc" : %s}] ! l[:] = [{"abc" : None}]:TypeError:('unable to convert to vim structure',) l[:] = [{"abc" : {"": 1}}]:ValueError:('empty keys are not allowed',) l[:] = [{"abc" : {u"": 1}}]:ValueError:('empty keys are not allowed',) l[:] = [{"abc" : FailingMapping()}]:NotImplementedError:() l[:] = [{"abc" : FailingMappingKey()}]:NotImplementedError:() <<< Finished >>> Testing StringToChars using l[:] = [Mapping({%s : 1})] ! l[:] = [Mapping({1 : 1})]:TypeError:('object must be string',) l[:] = [Mapping({u"\0" : 1})]:TypeError:('expected string without null bytes',) l[:] = [Mapping({"\0" : 1})]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({"abc" : {%s : 1}})] ! l[:] = [Mapping({"abc" : {1 : 1}})]:TypeError:('object must be string',) l[:] = [Mapping({"abc" : {u"\0" : 1}})]:TypeError:('expected string without null bytes',) l[:] = [Mapping({"abc" : {"\0" : 1}})]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({"abc" : Mapping({%s : 1})})] ! l[:] = [Mapping({"abc" : Mapping({1 : 1})})]:TypeError:('object must be string',) l[:] = [Mapping({"abc" : Mapping({u"\0" : 1})})]:TypeError:('expected string without null bytes',) l[:] = [Mapping({"abc" : Mapping({"\0" : 1})})]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using l[:] = [Mapping({"abc" : %s})] ! l[:] = [Mapping({"abc" : FailingIter()})]:TypeError:('unable to convert to vim structure',) l[:] = [Mapping({"abc" : FailingIterNext()})]:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abc" : %s})] ! l[:] = [Mapping({"abc" : None})]:TypeError:('unable to convert to vim structure',) l[:] = [Mapping({"abc" : {"": 1}})]:ValueError:('empty keys are not allowed',) l[:] = [Mapping({"abc" : {u"": 1}})]:ValueError:('empty keys are not allowed',) l[:] = [Mapping({"abc" : FailingMapping()})]:NotImplementedError:() l[:] = [Mapping({"abc" : FailingMappingKey()})]:NotImplementedError:() <<< Finished >>> Testing *Iter* using l[:] = [%s] ! l[:] = [FailingIter()]:TypeError:('unable to convert to vim structure',) l[:] = [FailingIterNext()]:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l[:] = [%s] ! l[:] = [None]:TypeError:('unable to convert to vim structure',) l[:] = [{"": 1}]:ValueError:('empty keys are not allowed',) l[:] = [{u"": 1}]:ValueError:('empty keys are not allowed',) l[:] = [FailingMapping()]:NotImplementedError:() --- 759,821 ---- >> ListAssSlice ll[1:100] = "abc":error:('list is locked',) >>> 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',) l[:] = [{"\0" : 1}]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l[:] = [{"abc" : {%s : 1}}] ! l[:] = [{"abc" : {1 : 1}}]:TypeError:('expected str() or unicode() instance, but got int',) l[:] = [{"abc" : {u"\0" : 1}}]:TypeError:('expected string without null bytes',) l[:] = [{"abc" : {"\0" : 1}}]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l[:] = [{"abc" : Mapping({%s : 1})}] ! l[:] = [{"abc" : Mapping({1 : 1})}]:TypeError:('expected str() or unicode() instance, but got int',) l[:] = [{"abc" : Mapping({u"\0" : 1})}]:TypeError:('expected string without null bytes',) l[:] = [{"abc" : Mapping({"\0" : 1})}]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using l[:] = [{"abc" : %s}] ! l[:] = [{"abc" : FailingIter()}]:TypeError:('unable to convert FailingIter to vim structure',) l[:] = [{"abc" : FailingIterNext()}]:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l[:] = [{"abc" : %s}] ! l[:] = [{"abc" : None}]:TypeError:('unable to convert NoneType to vim structure',) l[:] = [{"abc" : {"": 1}}]:ValueError:('empty keys are not allowed',) l[:] = [{"abc" : {u"": 1}}]:ValueError:('empty keys are not allowed',) l[:] = [{"abc" : FailingMapping()}]:NotImplementedError:() l[:] = [{"abc" : FailingMappingKey()}]:NotImplementedError:() <<< Finished >>> Testing StringToChars using l[:] = [Mapping({%s : 1})] ! l[:] = [Mapping({1 : 1})]:TypeError:('expected str() or unicode() instance, but got int',) l[:] = [Mapping({u"\0" : 1})]:TypeError:('expected string without null bytes',) l[:] = [Mapping({"\0" : 1})]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({"abc" : {%s : 1}})] ! l[:] = [Mapping({"abc" : {1 : 1}})]:TypeError:('expected str() or unicode() instance, but got int',) l[:] = [Mapping({"abc" : {u"\0" : 1}})]:TypeError:('expected string without null bytes',) l[:] = [Mapping({"abc" : {"\0" : 1}})]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({"abc" : Mapping({%s : 1})})] ! l[:] = [Mapping({"abc" : Mapping({1 : 1})})]:TypeError:('expected str() or unicode() instance, but got int',) l[:] = [Mapping({"abc" : Mapping({u"\0" : 1})})]:TypeError:('expected string without null bytes',) l[:] = [Mapping({"abc" : Mapping({"\0" : 1})})]:TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using l[:] = [Mapping({"abc" : %s})] ! l[:] = [Mapping({"abc" : FailingIter()})]:TypeError:('unable to convert FailingIter to vim structure',) l[:] = [Mapping({"abc" : FailingIterNext()})]:NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abc" : %s})] ! l[:] = [Mapping({"abc" : None})]:TypeError:('unable to convert NoneType to vim structure',) l[:] = [Mapping({"abc" : {"": 1}})]:ValueError:('empty keys are not allowed',) l[:] = [Mapping({"abc" : {u"": 1}})]:ValueError:('empty keys are not allowed',) l[:] = [Mapping({"abc" : FailingMapping()})]:NotImplementedError:() l[:] = [Mapping({"abc" : 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:() *************** *** 823,885 **** <<< Finished >> ListConcatInPlace >>> Testing StringToChars using l.extend([{%s : 1}]) ! l.extend([{1 : 1}]):TypeError:('object must be string',) l.extend([{u"\0" : 1}]):TypeError:('expected string without null bytes',) l.extend([{"\0" : 1}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l.extend([{"abc" : {%s : 1}}]) ! l.extend([{"abc" : {1 : 1}}]):TypeError:('object must be string',) l.extend([{"abc" : {u"\0" : 1}}]):TypeError:('expected string without null bytes',) l.extend([{"abc" : {"\0" : 1}}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l.extend([{"abc" : Mapping({%s : 1})}]) ! l.extend([{"abc" : Mapping({1 : 1})}]):TypeError:('object must be string',) l.extend([{"abc" : Mapping({u"\0" : 1})}]):TypeError:('expected string without null bytes',) l.extend([{"abc" : Mapping({"\0" : 1})}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using l.extend([{"abc" : %s}]) ! l.extend([{"abc" : FailingIter()}]):TypeError:('unable to convert to vim structure',) l.extend([{"abc" : FailingIterNext()}]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l.extend([{"abc" : %s}]) ! l.extend([{"abc" : None}]):TypeError:('unable to convert to vim structure',) l.extend([{"abc" : {"": 1}}]):ValueError:('empty keys are not allowed',) l.extend([{"abc" : {u"": 1}}]):ValueError:('empty keys are not allowed',) l.extend([{"abc" : FailingMapping()}]):NotImplementedError:() l.extend([{"abc" : FailingMappingKey()}]):NotImplementedError:() <<< Finished >>> Testing StringToChars using l.extend([Mapping({%s : 1})]) ! l.extend([Mapping({1 : 1})]):TypeError:('object must be string',) l.extend([Mapping({u"\0" : 1})]):TypeError:('expected string without null bytes',) l.extend([Mapping({"\0" : 1})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l.extend([Mapping({"abc" : {%s : 1}})]) ! l.extend([Mapping({"abc" : {1 : 1}})]):TypeError:('object must be string',) l.extend([Mapping({"abc" : {u"\0" : 1}})]):TypeError:('expected string without null bytes',) l.extend([Mapping({"abc" : {"\0" : 1}})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l.extend([Mapping({"abc" : Mapping({%s : 1})})]) ! l.extend([Mapping({"abc" : Mapping({1 : 1})})]):TypeError:('object must be string',) l.extend([Mapping({"abc" : Mapping({u"\0" : 1})})]):TypeError:('expected string without null bytes',) l.extend([Mapping({"abc" : Mapping({"\0" : 1})})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using l.extend([Mapping({"abc" : %s})]) ! l.extend([Mapping({"abc" : FailingIter()})]):TypeError:('unable to convert to vim structure',) l.extend([Mapping({"abc" : FailingIterNext()})]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l.extend([Mapping({"abc" : %s})]) ! l.extend([Mapping({"abc" : None})]):TypeError:('unable to convert to vim structure',) l.extend([Mapping({"abc" : {"": 1}})]):ValueError:('empty keys are not allowed',) l.extend([Mapping({"abc" : {u"": 1}})]):ValueError:('empty keys are not allowed',) l.extend([Mapping({"abc" : FailingMapping()})]):NotImplementedError:() l.extend([Mapping({"abc" : FailingMappingKey()})]):NotImplementedError:() <<< Finished >>> Testing *Iter* using l.extend([%s]) ! l.extend([FailingIter()]):TypeError:('unable to convert to vim structure',) l.extend([FailingIterNext()]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l.extend([%s]) ! l.extend([None]):TypeError:('unable to convert 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:() --- 823,885 ---- <<< 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',) l.extend([{"\0" : 1}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l.extend([{"abc" : {%s : 1}}]) ! l.extend([{"abc" : {1 : 1}}]):TypeError:('expected str() or unicode() instance, but got int',) l.extend([{"abc" : {u"\0" : 1}}]):TypeError:('expected string without null bytes',) l.extend([{"abc" : {"\0" : 1}}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l.extend([{"abc" : Mapping({%s : 1})}]) ! l.extend([{"abc" : Mapping({1 : 1})}]):TypeError:('expected str() or unicode() instance, but got int',) l.extend([{"abc" : Mapping({u"\0" : 1})}]):TypeError:('expected string without null bytes',) l.extend([{"abc" : Mapping({"\0" : 1})}]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using l.extend([{"abc" : %s}]) ! l.extend([{"abc" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',) l.extend([{"abc" : FailingIterNext()}]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l.extend([{"abc" : %s}]) ! l.extend([{"abc" : None}]):TypeError:('unable to convert NoneType to vim structure',) l.extend([{"abc" : {"": 1}}]):ValueError:('empty keys are not allowed',) l.extend([{"abc" : {u"": 1}}]):ValueError:('empty keys are not allowed',) l.extend([{"abc" : FailingMapping()}]):NotImplementedError:() l.extend([{"abc" : 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',) l.extend([Mapping({u"\0" : 1})]):TypeError:('expected string without null bytes',) l.extend([Mapping({"\0" : 1})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l.extend([Mapping({"abc" : {%s : 1}})]) ! l.extend([Mapping({"abc" : {1 : 1}})]):TypeError:('expected str() or unicode() instance, but got int',) l.extend([Mapping({"abc" : {u"\0" : 1}})]):TypeError:('expected string without null bytes',) l.extend([Mapping({"abc" : {"\0" : 1}})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using l.extend([Mapping({"abc" : Mapping({%s : 1})})]) ! l.extend([Mapping({"abc" : Mapping({1 : 1})})]):TypeError:('expected str() or unicode() instance, but got int',) l.extend([Mapping({"abc" : Mapping({u"\0" : 1})})]):TypeError:('expected string without null bytes',) l.extend([Mapping({"abc" : Mapping({"\0" : 1})})]):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using l.extend([Mapping({"abc" : %s})]) ! l.extend([Mapping({"abc" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',) l.extend([Mapping({"abc" : FailingIterNext()})]):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using l.extend([Mapping({"abc" : %s})]) ! l.extend([Mapping({"abc" : None})]):TypeError:('unable to convert NoneType to vim structure',) l.extend([Mapping({"abc" : {"": 1}})]):ValueError:('empty keys are not allowed',) l.extend([Mapping({"abc" : {u"": 1}})]):ValueError:('empty keys are not allowed',) l.extend([Mapping({"abc" : FailingMapping()})]):NotImplementedError:() l.extend([Mapping({"abc" : 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:() *************** *** 888,1028 **** >> ListSetattr del l.locked:AttributeError:('cannot delete vim.List attributes',) l.locked = FailingTrue():NotImplementedError:() ! l.xxx = True:AttributeError:('cannot set this attribute',) > Function >> FunctionConstructor ! vim.Function("123"):ValueError:('unnamed function does not exist',) ! vim.Function("xxx_non_existent_function_xxx"):ValueError:('function does not exist',) vim.Function("xxx#non#existent#function#xxx"):NOT FAILED >> FunctionCall >>> Testing StringToChars using f({%s : 1}) ! f({1 : 1}):TypeError:('object must be string',) f({u"\0" : 1}):TypeError:('expected string without null bytes',) f({"\0" : 1}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using f({"abc" : {%s : 1}}) ! f({"abc" : {1 : 1}}):TypeError:('object must be string',) f({"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',) f({"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using f({"abc" : Mapping({%s : 1})}) ! f({"abc" : Mapping({1 : 1})}):TypeError:('object must be string',) f({"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',) f({"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using f({"abc" : %s}) ! f({"abc" : FailingIter()}):TypeError:('unable to convert to vim structure',) f({"abc" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using f({"abc" : %s}) ! f({"abc" : None}):TypeError:('unable to convert to vim structure',) f({"abc" : {"": 1}}):ValueError:('empty keys are not allowed',) f({"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',) f({"abc" : FailingMapping()}):NotImplementedError:() f({"abc" : FailingMappingKey()}):NotImplementedError:() <<< Finished >>> Testing StringToChars using f(Mapping({%s : 1})) ! f(Mapping({1 : 1})):TypeError:('object must be string',) f(Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',) f(Mapping({"\0" : 1})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using f(Mapping({"abc" : {%s : 1}})) ! f(Mapping({"abc" : {1 : 1}})):TypeError:('object must be string',) f(Mapping({"abc" : {u"\0" : 1}})):TypeError:('expected string without null bytes',) f(Mapping({"abc" : {"\0" : 1}})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using f(Mapping({"abc" : Mapping({%s : 1})})) ! f(Mapping({"abc" : Mapping({1 : 1})})):TypeError:('object must be string',) f(Mapping({"abc" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',) f(Mapping({"abc" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using f(Mapping({"abc" : %s})) ! f(Mapping({"abc" : FailingIter()})):TypeError:('unable to convert to vim structure',) f(Mapping({"abc" : FailingIterNext()})):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using f(Mapping({"abc" : %s})) ! f(Mapping({"abc" : None})):TypeError:('unable to convert to vim structure',) f(Mapping({"abc" : {"": 1}})):ValueError:('empty keys are not allowed',) f(Mapping({"abc" : {u"": 1}})):ValueError:('empty keys are not allowed',) f(Mapping({"abc" : FailingMapping()})):NotImplementedError:() f(Mapping({"abc" : FailingMappingKey()})):NotImplementedError:() <<< Finished >>> Testing *Iter* using f(%s) ! f(FailingIter()):TypeError:('unable to convert to vim structure',) f(FailingIterNext()):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using f(%s) ! f(None):TypeError:('unable to convert 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:('object must be string',) fd(self={u"\0" : 1}):TypeError:('expected string without null bytes',) fd(self={"\0" : 1}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using fd(self={"abc" : {%s : 1}}) ! fd(self={"abc" : {1 : 1}}):TypeError:('object must be string',) fd(self={"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',) fd(self={"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using fd(self={"abc" : Mapping({%s : 1})}) ! fd(self={"abc" : Mapping({1 : 1})}):TypeError:('object must be string',) fd(self={"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',) fd(self={"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using fd(self={"abc" : %s}) ! fd(self={"abc" : FailingIter()}):TypeError:('unable to convert to vim structure',) fd(self={"abc" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using fd(self={"abc" : %s}) ! fd(self={"abc" : None}):TypeError:('unable to convert to vim structure',) fd(self={"abc" : {"": 1}}):ValueError:('empty keys are not allowed',) fd(self={"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',) fd(self={"abc" : FailingMapping()}):NotImplementedError:() fd(self={"abc" : FailingMappingKey()}):NotImplementedError:() <<< Finished >>> Testing StringToChars using fd(self=Mapping({%s : 1})) ! fd(self=Mapping({1 : 1})):TypeError:('object must be string',) fd(self=Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',) fd(self=Mapping({"\0" : 1})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using fd(self=Mapping({"abc" : {%s : 1}})) ! fd(self=Mapping({"abc" : {1 : 1}})):TypeError:('object must be string',) fd(self=Mapping({"abc" : {u"\0" : 1}})):TypeError:('expected string without null bytes',) fd(self=Mapping({"abc" : {"\0" : 1}})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using fd(self=Mapping({"abc" : Mapping({%s : 1})})) ! fd(self=Mapping({"abc" : Mapping({1 : 1})})):TypeError:('object must be string',) fd(self=Mapping({"abc" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',) fd(self=Mapping({"abc" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using fd(self=Mapping({"abc" : %s})) ! fd(self=Mapping({"abc" : FailingIter()})):TypeError:('unable to convert to vim structure',) fd(self=Mapping({"abc" : FailingIterNext()})):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using fd(self=Mapping({"abc" : %s})) ! fd(self=Mapping({"abc" : None})):TypeError:('unable to convert to vim structure',) fd(self=Mapping({"abc" : {"": 1}})):ValueError:('empty keys are not allowed',) fd(self=Mapping({"abc" : {u"": 1}})):ValueError:('empty keys are not allowed',) fd(self=Mapping({"abc" : FailingMapping()})):NotImplementedError:() fd(self=Mapping({"abc" : FailingMappingKey()})):NotImplementedError:() <<< Finished >>> Testing *Iter* using fd(self=%s) ! fd(self=FailingIter()):TypeError:('unable to convert object to vim dictionary',) ! fd(self=FailingIterNext()):TypeError:('unable to convert object to vim dictionary',) <<< Finished >>> Testing ConvertFromPyObject using fd(self=%s) ! fd(self=None):TypeError:('unable to convert object 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 object to vim dictionary',) <<< Finished > TabPage >> TabPageAttr --- 888,1028 ---- >> ListSetattr del l.locked:AttributeError:('cannot delete vim.List attributes',) l.locked = FailingTrue():NotImplementedError:() ! l.xxx = True:AttributeError:('cannot set attribute xxx',) > Function >> FunctionConstructor ! vim.Function("123"):ValueError:('unnamed function 123 does not exist',) ! vim.Function("xxx_non_existent_function_xxx"):ValueError:('function xxx_non_existent_function_xxx does not exist',) vim.Function("xxx#non#existent#function#xxx"):NOT FAILED >> FunctionCall >>> Testing StringToChars using f({%s : 1}) ! f({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',) f({u"\0" : 1}):TypeError:('expected string without null bytes',) f({"\0" : 1}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using f({"abc" : {%s : 1}}) ! f({"abc" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',) f({"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',) f({"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using f({"abc" : Mapping({%s : 1})}) ! f({"abc" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',) f({"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',) f({"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using f({"abc" : %s}) ! f({"abc" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) f({"abc" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using f({"abc" : %s}) ! f({"abc" : None}):TypeError:('unable to convert NoneType to vim structure',) f({"abc" : {"": 1}}):ValueError:('empty keys are not allowed',) f({"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',) f({"abc" : FailingMapping()}):NotImplementedError:() f({"abc" : FailingMappingKey()}):NotImplementedError:() <<< Finished >>> Testing StringToChars using f(Mapping({%s : 1})) ! f(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',) f(Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',) f(Mapping({"\0" : 1})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using f(Mapping({"abc" : {%s : 1}})) ! f(Mapping({"abc" : {1 : 1}})):TypeError:('expected str() or unicode() instance, but got int',) f(Mapping({"abc" : {u"\0" : 1}})):TypeError:('expected string without null bytes',) f(Mapping({"abc" : {"\0" : 1}})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using f(Mapping({"abc" : Mapping({%s : 1})})) ! f(Mapping({"abc" : Mapping({1 : 1})})):TypeError:('expected str() or unicode() instance, but got int',) f(Mapping({"abc" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',) f(Mapping({"abc" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using f(Mapping({"abc" : %s})) ! f(Mapping({"abc" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',) f(Mapping({"abc" : FailingIterNext()})):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using f(Mapping({"abc" : %s})) ! f(Mapping({"abc" : None})):TypeError:('unable to convert NoneType to vim structure',) f(Mapping({"abc" : {"": 1}})):ValueError:('empty keys are not allowed',) f(Mapping({"abc" : {u"": 1}})):ValueError:('empty keys are not allowed',) f(Mapping({"abc" : FailingMapping()})):NotImplementedError:() f(Mapping({"abc" : 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',) fd(self={u"\0" : 1}):TypeError:('expected string without null bytes',) fd(self={"\0" : 1}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using fd(self={"abc" : {%s : 1}}) ! fd(self={"abc" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',) fd(self={"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',) fd(self={"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using fd(self={"abc" : Mapping({%s : 1})}) ! fd(self={"abc" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',) fd(self={"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',) fd(self={"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using fd(self={"abc" : %s}) ! fd(self={"abc" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',) fd(self={"abc" : FailingIterNext()}):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using fd(self={"abc" : %s}) ! fd(self={"abc" : None}):TypeError:('unable to convert NoneType to vim structure',) fd(self={"abc" : {"": 1}}):ValueError:('empty keys are not allowed',) fd(self={"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',) fd(self={"abc" : FailingMapping()}):NotImplementedError:() fd(self={"abc" : 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',) fd(self=Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',) fd(self=Mapping({"\0" : 1})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using fd(self=Mapping({"abc" : {%s : 1}})) ! fd(self=Mapping({"abc" : {1 : 1}})):TypeError:('expected str() or unicode() instance, but got int',) fd(self=Mapping({"abc" : {u"\0" : 1}})):TypeError:('expected string without null bytes',) fd(self=Mapping({"abc" : {"\0" : 1}})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing StringToChars using fd(self=Mapping({"abc" : Mapping({%s : 1})})) ! fd(self=Mapping({"abc" : Mapping({1 : 1})})):TypeError:('expected str() or unicode() instance, but got int',) fd(self=Mapping({"abc" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',) fd(self=Mapping({"abc" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',) <<< Finished >>> Testing *Iter* using fd(self=Mapping({"abc" : %s})) ! fd(self=Mapping({"abc" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',) fd(self=Mapping({"abc" : FailingIterNext()})):NotImplementedError:() <<< Finished >>> Testing ConvertFromPyObject using fd(self=Mapping({"abc" : %s})) ! fd(self=Mapping({"abc" : None})):TypeError:('unable to convert NoneType to vim structure',) fd(self=Mapping({"abc" : {"": 1}})):ValueError:('empty keys are not allowed',) fd(self=Mapping({"abc" : {u"": 1}})):ValueError:('empty keys are not allowed',) fd(self=Mapping({"abc" : FailingMapping()})):NotImplementedError:() fd(self=Mapping({"abc" : FailingMappingKey()})):NotImplementedError:() <<< Finished >>> Testing *Iter* using fd(self=%s) ! fd(self=FailingIter()):TypeError:('unable to convert FailingIter to vim dictionary',) ! fd(self=FailingIterNext()):TypeError:('unable to convert FailingIterNext to vim dictionary',) <<< Finished >>> Testing ConvertFromPyObject using fd(self=%s) ! 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',) <<< Finished > TabPage >> TabPageAttr *************** *** 1034,1040 **** >> WindowAttr vim.current.window.xxx:AttributeError:('xxx',) >> WindowSetattr ! vim.current.window.buffer = 0:TypeError:('readonly attribute',) 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 = "abc":TypeError:('an integer is required',) --- 1034,1040 ---- >> WindowAttr vim.current.window.xxx:AttributeError:('xxx',) >> WindowSetattr ! 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 = "abc":TypeError:('an integer is required',) *************** *** 1062,1071 **** >> BufferAttr vim.current.buffer.xxx:AttributeError:('xxx',) >> BufferSetattr ! vim.current.buffer.name = True:TypeError:('object must be string',) vim.current.buffer.xxx = True:AttributeError:('xxx',) >> BufferMark ! vim.current.buffer.mark(0):TypeError:('object must be string',) vim.current.buffer.mark("abc"):ValueError:('mark name must be a single character',) vim.current.buffer.mark("!"):error:('invalid mark name',) >> BufferRange --- 1062,1071 ---- >> BufferAttr vim.current.buffer.xxx:AttributeError:('xxx',) >> BufferSetattr ! vim.current.buffer.name = True:TypeError:('expected str() or unicode() instance, but got bool',) vim.current.buffer.xxx = True:AttributeError:('xxx',) >> BufferMark ! vim.current.buffer.mark(0):TypeError:('expected str() or unicode() instance, but got int',) vim.current.buffer.mark("abc"):ValueError:('mark name must be a single character',) vim.current.buffer.mark("!"):error:('invalid mark name',) >> BufferRange *************** *** 1079,1087 **** vim.current.xxx:AttributeError:('xxx',) >> CurrentSetattr vim.current.line = True:TypeError:('bad argument type for built-in operation',) ! vim.current.buffer = True:TypeError:('expected vim.Buffer object',) ! vim.current.window = True:TypeError:('expected vim.Window object',) ! vim.current.tabpage = True:TypeError:('expected vim.TabPage object',) vim.current.xxx = True:AttributeError:('xxx',) 2,xx before --- 1079,1087 ---- vim.current.xxx:AttributeError:('xxx',) >> CurrentSetattr vim.current.line = True:TypeError:('bad argument type for built-in operation',) ! vim.current.buffer = True:TypeError:('expected vim.Buffer object, but got bool',) ! vim.current.window = True:TypeError:('expected vim.Window object, but got bool',) ! vim.current.tabpage = True:TypeError:('expected vim.TabPage object, but got bool',) vim.current.xxx = True:AttributeError:('xxx',) 2,xx before *** ../vim-7.3.1229/src/testdir/test87.ok 2013-06-23 13:00:40.000000000 +0200 --- src/testdir/test87.ok 2013-06-23 13:31:16.000000000 +0200 *************** *** 428,434 **** >> OutputSetattr del sys.stdout.softspace:(, AttributeError("can't delete OutputObject attributes",)) sys.stdout.softspace = []:(, TypeError('softspace must be an integer',)) ! sys.stdout.attr = None:(, AttributeError('invalid attribute',)) >> OutputWrite sys.stdout.write(None):(, TypeError("Can't convert 'NoneType' object to str implicitly",)) >> OutputWriteLines --- 428,434 ---- >> OutputSetattr del sys.stdout.softspace:(, AttributeError("can't delete OutputObject attributes",)) sys.stdout.softspace = []:(, TypeError('softspace must be an integer',)) ! sys.stdout.attr = None:(, AttributeError('invalid attribute: attr',)) >> OutputWrite sys.stdout.write(None):(, TypeError("Can't convert 'NoneType' object to str implicitly",)) >> OutputWriteLines *************** *** 439,537 **** sys.stdout.writelines(FailingIterNext()):(, NotImplementedError()) <<< Finished > VimCommand ! vim.command(1):(, TypeError('object must be string',)) > VimToPython > VimEval ! vim.eval(1):(, TypeError('object must be string',)) > VimEvalPy ! vim.bindeval(1):(, TypeError('object must be string',)) > VimStrwidth ! vim.strwidth(1):(, TypeError('object must be string',)) > Dictionary >> DictionaryConstructor ! vim.Dictionary("abc"):(, ValueError('expected sequence element of size 2',)) >> 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 this attribute',)) ! d.xxx = True:(, AttributeError('cannot set this attribute',)) >> _DictionaryItem d.get("a", 2, 3):(, TypeError('function takes at most 2 arguments (3 given)',)) >>> Testing StringToChars using d.get(%s) ! d.get(1):(, TypeError('object must be string',)) d.get(b"\0"):(, TypeError('expected bytes with no null',)) d.get("\0"):(, TypeError('expected bytes with no null',)) <<< Finished d.pop("a"):(, KeyError('a',)) ! dl.pop("a"):(, error('dict is locked',)) >> DictionaryIterNext for i in ned: ned["a"] = 1:(, RuntimeError('hashtab changed during iteration',)) >> DictionaryAssItem ! dl["b"] = 1:(, error('dict is locked',)) >>> Testing StringToChars using d[%s] = 1 ! d[1] = 1:(, TypeError('object must be string',)) d[b"\0"] = 1:(, TypeError('expected bytes with no null',)) d["\0"] = 1:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = {%s : 1} ! d["a"] = {1 : 1}:(, TypeError('object must be string',)) d["a"] = {b"\0" : 1}:(, TypeError('expected bytes with no null',)) d["a"] = {"\0" : 1}:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = {"abc" : {%s : 1}} ! d["a"] = {"abc" : {1 : 1}}:(, TypeError('object must be string',)) d["a"] = {"abc" : {b"\0" : 1}}:(, TypeError('expected bytes with no null',)) d["a"] = {"abc" : {"\0" : 1}}:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = {"abc" : Mapping({%s : 1})} ! d["a"] = {"abc" : Mapping({1 : 1})}:(, TypeError('object must be string',)) d["a"] = {"abc" : Mapping({b"\0" : 1})}:(, TypeError('expected bytes with no null',)) d["a"] = {"abc" : Mapping({"\0" : 1})}:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d["a"] = {"abc" : %s} ! d["a"] = {"abc" : FailingIter()}:(, TypeError('unable to convert to vim structure',)) d["a"] = {"abc" : FailingIterNext()}:(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = {"abc" : %s} ! d["a"] = {"abc" : None}:(, TypeError('unable to convert to vim structure',)) d["a"] = {"abc" : {b"": 1}}:(, ValueError('empty keys are not allowed',)) d["a"] = {"abc" : {"": 1}}:(, ValueError('empty keys are not allowed',)) d["a"] = {"abc" : FailingMapping()}:(, NotImplementedError()) d["a"] = {"abc" : FailingMappingKey()}:(, NotImplementedError()) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({%s : 1}) ! d["a"] = Mapping({1 : 1}):(, TypeError('object must be string',)) d["a"] = Mapping({b"\0" : 1}):(, TypeError('expected bytes with no null',)) d["a"] = Mapping({"\0" : 1}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({"abc" : {%s : 1}}) ! d["a"] = Mapping({"abc" : {1 : 1}}):(, TypeError('object must be string',)) d["a"] = Mapping({"abc" : {b"\0" : 1}}):(, TypeError('expected bytes with no null',)) d["a"] = Mapping({"abc" : {"\0" : 1}}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({"abc" : Mapping({%s : 1})}) ! d["a"] = Mapping({"abc" : Mapping({1 : 1})}):(, TypeError('object must be string',)) d["a"] = Mapping({"abc" : Mapping({b"\0" : 1})}):(, TypeError('expected bytes with no null',)) d["a"] = Mapping({"abc" : Mapping({"\0" : 1})}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d["a"] = Mapping({"abc" : %s}) ! d["a"] = Mapping({"abc" : FailingIter()}):(, TypeError('unable to convert to vim structure',)) d["a"] = Mapping({"abc" : FailingIterNext()}):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abc" : %s}) ! d["a"] = Mapping({"abc" : None}):(, TypeError('unable to convert to vim structure',)) d["a"] = Mapping({"abc" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) d["a"] = Mapping({"abc" : {"": 1}}):(, ValueError('empty keys are not allowed',)) d["a"] = Mapping({"abc" : FailingMapping()}):(, NotImplementedError()) d["a"] = Mapping({"abc" : FailingMappingKey()}):(, NotImplementedError()) <<< Finished >>> Testing *Iter* using d["a"] = %s ! d["a"] = FailingIter():(, TypeError('unable to convert to vim structure',)) d["a"] = FailingIterNext():(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = %s ! d["a"] = None:(, TypeError('unable to convert 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()) --- 439,537 ---- 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("abc"):(, 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',)) >> _DictionaryItem d.get("a", 2, 3):(, TypeError('function takes at most 2 arguments (3 given)',)) >>> Testing StringToChars using d.get(%s) ! d.get(1):(, TypeError('expected bytes() or str() instance, but got int',)) d.get(b"\0"):(, TypeError('expected bytes with no null',)) d.get("\0"):(, TypeError('expected bytes with no null',)) <<< Finished d.pop("a"):(, KeyError('a',)) ! dl.pop("a"):(, error('dictionary is locked',)) >> DictionaryIterNext for i in ned: ned["a"] = 1:(, RuntimeError('hashtab changed during iteration',)) >> DictionaryAssItem ! dl["b"] = 1:(, error('dictionary is locked',)) >>> Testing StringToChars using d[%s] = 1 ! d[1] = 1:(, TypeError('expected bytes() or str() instance, but got int',)) d[b"\0"] = 1:(, TypeError('expected bytes with no null',)) d["\0"] = 1:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = {%s : 1} ! d["a"] = {1 : 1}:(, TypeError('expected bytes() or str() instance, but got int',)) d["a"] = {b"\0" : 1}:(, TypeError('expected bytes with no null',)) d["a"] = {"\0" : 1}:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = {"abc" : {%s : 1}} ! d["a"] = {"abc" : {1 : 1}}:(, TypeError('expected bytes() or str() instance, but got int',)) d["a"] = {"abc" : {b"\0" : 1}}:(, TypeError('expected bytes with no null',)) d["a"] = {"abc" : {"\0" : 1}}:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = {"abc" : Mapping({%s : 1})} ! d["a"] = {"abc" : Mapping({1 : 1})}:(, TypeError('expected bytes() or str() instance, but got int',)) d["a"] = {"abc" : Mapping({b"\0" : 1})}:(, TypeError('expected bytes with no null',)) d["a"] = {"abc" : Mapping({"\0" : 1})}:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d["a"] = {"abc" : %s} ! d["a"] = {"abc" : FailingIter()}:(, TypeError('unable to convert FailingIter to vim structure',)) d["a"] = {"abc" : FailingIterNext()}:(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = {"abc" : %s} ! d["a"] = {"abc" : None}:(, TypeError('unable to convert NoneType to vim structure',)) d["a"] = {"abc" : {b"": 1}}:(, ValueError('empty keys are not allowed',)) d["a"] = {"abc" : {"": 1}}:(, ValueError('empty keys are not allowed',)) d["a"] = {"abc" : FailingMapping()}:(, NotImplementedError()) d["a"] = {"abc" : 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',)) d["a"] = Mapping({b"\0" : 1}):(, TypeError('expected bytes with no null',)) d["a"] = Mapping({"\0" : 1}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({"abc" : {%s : 1}}) ! d["a"] = Mapping({"abc" : {1 : 1}}):(, TypeError('expected bytes() or str() instance, but got int',)) d["a"] = Mapping({"abc" : {b"\0" : 1}}):(, TypeError('expected bytes with no null',)) d["a"] = Mapping({"abc" : {"\0" : 1}}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d["a"] = Mapping({"abc" : Mapping({%s : 1})}) ! d["a"] = Mapping({"abc" : Mapping({1 : 1})}):(, TypeError('expected bytes() or str() instance, but got int',)) d["a"] = Mapping({"abc" : Mapping({b"\0" : 1})}):(, TypeError('expected bytes with no null',)) d["a"] = Mapping({"abc" : Mapping({"\0" : 1})}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d["a"] = Mapping({"abc" : %s}) ! d["a"] = Mapping({"abc" : FailingIter()}):(, TypeError('unable to convert FailingIter to vim structure',)) d["a"] = Mapping({"abc" : FailingIterNext()}):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abc" : %s}) ! d["a"] = Mapping({"abc" : None}):(, TypeError('unable to convert NoneType to vim structure',)) d["a"] = Mapping({"abc" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) d["a"] = Mapping({"abc" : {"": 1}}):(, ValueError('empty keys are not allowed',)) d["a"] = Mapping({"abc" : FailingMapping()}):(, NotImplementedError()) d["a"] = Mapping({"abc" : 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()) *************** *** 547,598 **** d.update(FailingIterNext()):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using d.update({%s : 1}) ! d.update({1 : 1}):(, TypeError('object must be string',)) d.update({b"\0" : 1}):(, TypeError('expected bytes with no null',)) d.update({"\0" : 1}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update({"abc" : {%s : 1}}) ! d.update({"abc" : {1 : 1}}):(, TypeError('object must be string',)) d.update({"abc" : {b"\0" : 1}}):(, TypeError('expected bytes with no null',)) d.update({"abc" : {"\0" : 1}}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update({"abc" : Mapping({%s : 1})}) ! d.update({"abc" : Mapping({1 : 1})}):(, TypeError('object must be string',)) d.update({"abc" : Mapping({b"\0" : 1})}):(, TypeError('expected bytes with no null',)) d.update({"abc" : Mapping({"\0" : 1})}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d.update({"abc" : %s}) ! d.update({"abc" : FailingIter()}):(, TypeError('unable to convert to vim structure',)) d.update({"abc" : FailingIterNext()}):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update({"abc" : %s}) ! d.update({"abc" : None}):(, TypeError('unable to convert to vim structure',)) d.update({"abc" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) d.update({"abc" : {"": 1}}):(, ValueError('empty keys are not allowed',)) d.update({"abc" : FailingMapping()}):(, NotImplementedError()) d.update({"abc" : FailingMappingKey()}):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using d.update(Mapping({%s : 1})) ! d.update(Mapping({1 : 1})):(, TypeError('object must be string',)) d.update(Mapping({b"\0" : 1})):(, TypeError('expected bytes with no null',)) d.update(Mapping({"\0" : 1})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update(Mapping({"abc" : {%s : 1}})) ! d.update(Mapping({"abc" : {1 : 1}})):(, TypeError('object must be string',)) d.update(Mapping({"abc" : {b"\0" : 1}})):(, TypeError('expected bytes with no null',)) d.update(Mapping({"abc" : {"\0" : 1}})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update(Mapping({"abc" : Mapping({%s : 1})})) ! d.update(Mapping({"abc" : Mapping({1 : 1})})):(, TypeError('object must be string',)) d.update(Mapping({"abc" : Mapping({b"\0" : 1})})):(, TypeError('expected bytes with no null',)) d.update(Mapping({"abc" : Mapping({"\0" : 1})})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d.update(Mapping({"abc" : %s})) ! d.update(Mapping({"abc" : FailingIter()})):(, TypeError('unable to convert to vim structure',)) d.update(Mapping({"abc" : FailingIterNext()})):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update(Mapping({"abc" : %s})) ! d.update(Mapping({"abc" : None})):(, TypeError('unable to convert to vim structure',)) d.update(Mapping({"abc" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) d.update(Mapping({"abc" : {"": 1}})):(, ValueError('empty keys are not allowed',)) d.update(Mapping({"abc" : FailingMapping()})):(, NotImplementedError()) --- 547,598 ---- 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',)) d.update({b"\0" : 1}):(, TypeError('expected bytes with no null',)) d.update({"\0" : 1}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update({"abc" : {%s : 1}}) ! d.update({"abc" : {1 : 1}}):(, TypeError('expected bytes() or str() instance, but got int',)) d.update({"abc" : {b"\0" : 1}}):(, TypeError('expected bytes with no null',)) d.update({"abc" : {"\0" : 1}}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update({"abc" : Mapping({%s : 1})}) ! d.update({"abc" : Mapping({1 : 1})}):(, TypeError('expected bytes() or str() instance, but got int',)) d.update({"abc" : Mapping({b"\0" : 1})}):(, TypeError('expected bytes with no null',)) d.update({"abc" : Mapping({"\0" : 1})}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d.update({"abc" : %s}) ! d.update({"abc" : FailingIter()}):(, TypeError('unable to convert FailingIter to vim structure',)) d.update({"abc" : FailingIterNext()}):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update({"abc" : %s}) ! d.update({"abc" : None}):(, TypeError('unable to convert NoneType to vim structure',)) d.update({"abc" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) d.update({"abc" : {"": 1}}):(, ValueError('empty keys are not allowed',)) d.update({"abc" : FailingMapping()}):(, NotImplementedError()) d.update({"abc" : 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',)) d.update(Mapping({b"\0" : 1})):(, TypeError('expected bytes with no null',)) d.update(Mapping({"\0" : 1})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update(Mapping({"abc" : {%s : 1}})) ! d.update(Mapping({"abc" : {1 : 1}})):(, TypeError('expected bytes() or str() instance, but got int',)) d.update(Mapping({"abc" : {b"\0" : 1}})):(, TypeError('expected bytes with no null',)) d.update(Mapping({"abc" : {"\0" : 1}})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update(Mapping({"abc" : Mapping({%s : 1})})) ! d.update(Mapping({"abc" : Mapping({1 : 1})})):(, TypeError('expected bytes() or str() instance, but got int',)) d.update(Mapping({"abc" : Mapping({b"\0" : 1})})):(, TypeError('expected bytes with no null',)) d.update(Mapping({"abc" : Mapping({"\0" : 1})})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d.update(Mapping({"abc" : %s})) ! d.update(Mapping({"abc" : FailingIter()})):(, TypeError('unable to convert FailingIter to vim structure',)) d.update(Mapping({"abc" : FailingIterNext()})):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update(Mapping({"abc" : %s})) ! d.update(Mapping({"abc" : None})):(, TypeError('unable to convert NoneType to vim structure',)) d.update(Mapping({"abc" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) d.update(Mapping({"abc" : {"": 1}})):(, ValueError('empty keys are not allowed',)) d.update(Mapping({"abc" : FailingMapping()})):(, NotImplementedError()) *************** *** 610,677 **** d.update(FailingMappingKey()):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using d.update(((%s, 0),)) ! d.update(((1, 0),)):(, TypeError('object must be string',)) d.update(((b"\0", 0),)):(, TypeError('expected bytes with no null',)) d.update((("\0", 0),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", {%s : 1}),)) ! d.update((("a", {1 : 1}),)):(, TypeError('object must be string',)) d.update((("a", {b"\0" : 1}),)):(, TypeError('expected bytes with no null',)) d.update((("a", {"\0" : 1}),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", {"abc" : {%s : 1}}),)) ! d.update((("a", {"abc" : {1 : 1}}),)):(, TypeError('object must be string',)) d.update((("a", {"abc" : {b"\0" : 1}}),)):(, TypeError('expected bytes with no null',)) d.update((("a", {"abc" : {"\0" : 1}}),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", {"abc" : Mapping({%s : 1})}),)) ! d.update((("a", {"abc" : Mapping({1 : 1})}),)):(, TypeError('object must be string',)) d.update((("a", {"abc" : Mapping({b"\0" : 1})}),)):(, TypeError('expected bytes with no null',)) d.update((("a", {"abc" : Mapping({"\0" : 1})}),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d.update((("a", {"abc" : %s}),)) ! d.update((("a", {"abc" : FailingIter()}),)):(, TypeError('unable to convert to vim structure',)) d.update((("a", {"abc" : FailingIterNext()}),)):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", {"abc" : %s}),)) ! d.update((("a", {"abc" : None}),)):(, TypeError('unable to convert to vim structure',)) d.update((("a", {"abc" : {b"": 1}}),)):(, ValueError('empty keys are not allowed',)) d.update((("a", {"abc" : {"": 1}}),)):(, ValueError('empty keys are not allowed',)) d.update((("a", {"abc" : FailingMapping()}),)):(, NotImplementedError()) d.update((("a", {"abc" : FailingMappingKey()}),)):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),)) ! d.update((("a", Mapping({1 : 1})),)):(, TypeError('object must be string',)) d.update((("a", Mapping({b"\0" : 1})),)):(, TypeError('expected bytes with no null',)) d.update((("a", Mapping({"\0" : 1})),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({"abc" : {%s : 1}})),)) ! d.update((("a", Mapping({"abc" : {1 : 1}})),)):(, TypeError('object must be string',)) d.update((("a", Mapping({"abc" : {b"\0" : 1}})),)):(, TypeError('expected bytes with no null',)) d.update((("a", Mapping({"abc" : {"\0" : 1}})),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({"abc" : Mapping({%s : 1})})),)) ! d.update((("a", Mapping({"abc" : Mapping({1 : 1})})),)):(, TypeError('object must be string',)) d.update((("a", Mapping({"abc" : Mapping({b"\0" : 1})})),)):(, TypeError('expected bytes with no null',)) d.update((("a", Mapping({"abc" : Mapping({"\0" : 1})})),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d.update((("a", Mapping({"abc" : %s})),)) ! d.update((("a", Mapping({"abc" : FailingIter()})),)):(, TypeError('unable to convert to vim structure',)) d.update((("a", Mapping({"abc" : FailingIterNext()})),)):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abc" : %s})),)) ! d.update((("a", Mapping({"abc" : None})),)):(, TypeError('unable to convert to vim structure',)) d.update((("a", Mapping({"abc" : {b"": 1}})),)):(, ValueError('empty keys are not allowed',)) d.update((("a", Mapping({"abc" : {"": 1}})),)):(, ValueError('empty keys are not allowed',)) d.update((("a", Mapping({"abc" : FailingMapping()})),)):(, NotImplementedError()) d.update((("a", Mapping({"abc" : FailingMappingKey()})),)):(, NotImplementedError()) <<< Finished >>> Testing *Iter* using d.update((("a", %s),)) ! d.update((("a", FailingIter()),)):(, TypeError('unable to convert to vim structure',)) d.update((("a", FailingIterNext()),)):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", %s),)) ! d.update((("a", None),)):(, TypeError('unable to convert 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()) --- 610,677 ---- 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',)) d.update(((b"\0", 0),)):(, TypeError('expected bytes with no null',)) d.update((("\0", 0),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", {%s : 1}),)) ! d.update((("a", {1 : 1}),)):(, TypeError('expected bytes() or str() instance, but got int',)) d.update((("a", {b"\0" : 1}),)):(, TypeError('expected bytes with no null',)) d.update((("a", {"\0" : 1}),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", {"abc" : {%s : 1}}),)) ! d.update((("a", {"abc" : {1 : 1}}),)):(, TypeError('expected bytes() or str() instance, but got int',)) d.update((("a", {"abc" : {b"\0" : 1}}),)):(, TypeError('expected bytes with no null',)) d.update((("a", {"abc" : {"\0" : 1}}),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", {"abc" : Mapping({%s : 1})}),)) ! d.update((("a", {"abc" : Mapping({1 : 1})}),)):(, TypeError('expected bytes() or str() instance, but got int',)) d.update((("a", {"abc" : Mapping({b"\0" : 1})}),)):(, TypeError('expected bytes with no null',)) d.update((("a", {"abc" : Mapping({"\0" : 1})}),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d.update((("a", {"abc" : %s}),)) ! d.update((("a", {"abc" : FailingIter()}),)):(, TypeError('unable to convert FailingIter to vim structure',)) d.update((("a", {"abc" : FailingIterNext()}),)):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", {"abc" : %s}),)) ! d.update((("a", {"abc" : None}),)):(, TypeError('unable to convert NoneType to vim structure',)) d.update((("a", {"abc" : {b"": 1}}),)):(, ValueError('empty keys are not allowed',)) d.update((("a", {"abc" : {"": 1}}),)):(, ValueError('empty keys are not allowed',)) d.update((("a", {"abc" : FailingMapping()}),)):(, NotImplementedError()) d.update((("a", {"abc" : 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',)) d.update((("a", Mapping({b"\0" : 1})),)):(, TypeError('expected bytes with no null',)) d.update((("a", Mapping({"\0" : 1})),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({"abc" : {%s : 1}})),)) ! d.update((("a", Mapping({"abc" : {1 : 1}})),)):(, TypeError('expected bytes() or str() instance, but got int',)) d.update((("a", Mapping({"abc" : {b"\0" : 1}})),)):(, TypeError('expected bytes with no null',)) d.update((("a", Mapping({"abc" : {"\0" : 1}})),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using d.update((("a", Mapping({"abc" : Mapping({%s : 1})})),)) ! d.update((("a", Mapping({"abc" : Mapping({1 : 1})})),)):(, TypeError('expected bytes() or str() instance, but got int',)) d.update((("a", Mapping({"abc" : Mapping({b"\0" : 1})})),)):(, TypeError('expected bytes with no null',)) d.update((("a", Mapping({"abc" : Mapping({"\0" : 1})})),)):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using d.update((("a", Mapping({"abc" : %s})),)) ! d.update((("a", Mapping({"abc" : FailingIter()})),)):(, TypeError('unable to convert FailingIter to vim structure',)) d.update((("a", Mapping({"abc" : FailingIterNext()})),)):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abc" : %s})),)) ! d.update((("a", Mapping({"abc" : None})),)):(, TypeError('unable to convert NoneType to vim structure',)) d.update((("a", Mapping({"abc" : {b"": 1}})),)):(, ValueError('empty keys are not allowed',)) d.update((("a", Mapping({"abc" : {"": 1}})),)):(, ValueError('empty keys are not allowed',)) d.update((("a", Mapping({"abc" : FailingMapping()})),)):(, NotImplementedError()) d.update((("a", Mapping({"abc" : 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()) *************** *** 690,752 **** vim.List(FailingIterNext()):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using vim.List([{%s : 1}]) ! vim.List([{1 : 1}]):(, TypeError('object must be string',)) vim.List([{b"\0" : 1}]):(, TypeError('expected bytes with no null',)) vim.List([{"\0" : 1}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using vim.List([{"abc" : {%s : 1}}]) ! vim.List([{"abc" : {1 : 1}}]):(, TypeError('object must be string',)) vim.List([{"abc" : {b"\0" : 1}}]):(, TypeError('expected bytes with no null',)) vim.List([{"abc" : {"\0" : 1}}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using vim.List([{"abc" : Mapping({%s : 1})}]) ! vim.List([{"abc" : Mapping({1 : 1})}]):(, TypeError('object must be string',)) vim.List([{"abc" : Mapping({b"\0" : 1})}]):(, TypeError('expected bytes with no null',)) vim.List([{"abc" : Mapping({"\0" : 1})}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using vim.List([{"abc" : %s}]) ! vim.List([{"abc" : FailingIter()}]):(, TypeError('unable to convert to vim structure',)) vim.List([{"abc" : FailingIterNext()}]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using vim.List([{"abc" : %s}]) ! vim.List([{"abc" : None}]):(, TypeError('unable to convert to vim structure',)) vim.List([{"abc" : {b"": 1}}]):(, ValueError('empty keys are not allowed',)) vim.List([{"abc" : {"": 1}}]):(, ValueError('empty keys are not allowed',)) vim.List([{"abc" : FailingMapping()}]):(, NotImplementedError()) vim.List([{"abc" : FailingMappingKey()}]):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using vim.List([Mapping({%s : 1})]) ! vim.List([Mapping({1 : 1})]):(, TypeError('object must be string',)) vim.List([Mapping({b"\0" : 1})]):(, TypeError('expected bytes with no null',)) vim.List([Mapping({"\0" : 1})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using vim.List([Mapping({"abc" : {%s : 1}})]) ! vim.List([Mapping({"abc" : {1 : 1}})]):(, TypeError('object must be string',)) vim.List([Mapping({"abc" : {b"\0" : 1}})]):(, TypeError('expected bytes with no null',)) vim.List([Mapping({"abc" : {"\0" : 1}})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using vim.List([Mapping({"abc" : Mapping({%s : 1})})]) ! vim.List([Mapping({"abc" : Mapping({1 : 1})})]):(, TypeError('object must be string',)) vim.List([Mapping({"abc" : Mapping({b"\0" : 1})})]):(, TypeError('expected bytes with no null',)) vim.List([Mapping({"abc" : Mapping({"\0" : 1})})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using vim.List([Mapping({"abc" : %s})]) ! vim.List([Mapping({"abc" : FailingIter()})]):(, TypeError('unable to convert to vim structure',)) vim.List([Mapping({"abc" : FailingIterNext()})]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using vim.List([Mapping({"abc" : %s})]) ! vim.List([Mapping({"abc" : None})]):(, TypeError('unable to convert to vim structure',)) vim.List([Mapping({"abc" : {b"": 1}})]):(, ValueError('empty keys are not allowed',)) vim.List([Mapping({"abc" : {"": 1}})]):(, ValueError('empty keys are not allowed',)) vim.List([Mapping({"abc" : FailingMapping()})]):(, NotImplementedError()) vim.List([Mapping({"abc" : FailingMappingKey()})]):(, NotImplementedError()) <<< Finished >>> Testing *Iter* using vim.List([%s]) ! vim.List([FailingIter()]):(, TypeError('unable to convert to vim structure',)) vim.List([FailingIterNext()]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using vim.List([%s]) ! vim.List([None]):(, TypeError('unable to convert 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()) --- 690,752 ---- 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',)) vim.List([{b"\0" : 1}]):(, TypeError('expected bytes with no null',)) vim.List([{"\0" : 1}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using vim.List([{"abc" : {%s : 1}}]) ! vim.List([{"abc" : {1 : 1}}]):(, TypeError('expected bytes() or str() instance, but got int',)) vim.List([{"abc" : {b"\0" : 1}}]):(, TypeError('expected bytes with no null',)) vim.List([{"abc" : {"\0" : 1}}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using vim.List([{"abc" : Mapping({%s : 1})}]) ! vim.List([{"abc" : Mapping({1 : 1})}]):(, TypeError('expected bytes() or str() instance, but got int',)) vim.List([{"abc" : Mapping({b"\0" : 1})}]):(, TypeError('expected bytes with no null',)) vim.List([{"abc" : Mapping({"\0" : 1})}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using vim.List([{"abc" : %s}]) ! vim.List([{"abc" : FailingIter()}]):(, TypeError('unable to convert FailingIter to vim structure',)) vim.List([{"abc" : FailingIterNext()}]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using vim.List([{"abc" : %s}]) ! vim.List([{"abc" : None}]):(, TypeError('unable to convert NoneType to vim structure',)) vim.List([{"abc" : {b"": 1}}]):(, ValueError('empty keys are not allowed',)) vim.List([{"abc" : {"": 1}}]):(, ValueError('empty keys are not allowed',)) vim.List([{"abc" : FailingMapping()}]):(, NotImplementedError()) vim.List([{"abc" : 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',)) vim.List([Mapping({b"\0" : 1})]):(, TypeError('expected bytes with no null',)) vim.List([Mapping({"\0" : 1})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using vim.List([Mapping({"abc" : {%s : 1}})]) ! vim.List([Mapping({"abc" : {1 : 1}})]):(, TypeError('expected bytes() or str() instance, but got int',)) vim.List([Mapping({"abc" : {b"\0" : 1}})]):(, TypeError('expected bytes with no null',)) vim.List([Mapping({"abc" : {"\0" : 1}})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using vim.List([Mapping({"abc" : Mapping({%s : 1})})]) ! vim.List([Mapping({"abc" : Mapping({1 : 1})})]):(, TypeError('expected bytes() or str() instance, but got int',)) vim.List([Mapping({"abc" : Mapping({b"\0" : 1})})]):(, TypeError('expected bytes with no null',)) vim.List([Mapping({"abc" : Mapping({"\0" : 1})})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using vim.List([Mapping({"abc" : %s})]) ! vim.List([Mapping({"abc" : FailingIter()})]):(, TypeError('unable to convert FailingIter to vim structure',)) vim.List([Mapping({"abc" : FailingIterNext()})]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using vim.List([Mapping({"abc" : %s})]) ! vim.List([Mapping({"abc" : None})]):(, TypeError('unable to convert NoneType to vim structure',)) vim.List([Mapping({"abc" : {b"": 1}})]):(, ValueError('empty keys are not allowed',)) vim.List([Mapping({"abc" : {"": 1}})]):(, ValueError('empty keys are not allowed',)) vim.List([Mapping({"abc" : FailingMapping()})]):(, NotImplementedError()) vim.List([Mapping({"abc" : 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()) *************** *** 764,826 **** l[:] = FailingIterNext()::(, NotImplementedError()) <<< Finished >>> Testing StringToChars using l[:] = [{%s : 1}] ! l[:] = [{1 : 1}]:(, TypeError('object must be string',)) l[:] = [{b"\0" : 1}]:(, TypeError('expected bytes with no null',)) l[:] = [{"\0" : 1}]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l[:] = [{"abc" : {%s : 1}}] ! l[:] = [{"abc" : {1 : 1}}]:(, TypeError('object must be string',)) l[:] = [{"abc" : {b"\0" : 1}}]:(, TypeError('expected bytes with no null',)) l[:] = [{"abc" : {"\0" : 1}}]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l[:] = [{"abc" : Mapping({%s : 1})}] ! l[:] = [{"abc" : Mapping({1 : 1})}]:(, TypeError('object must be string',)) l[:] = [{"abc" : Mapping({b"\0" : 1})}]:(, TypeError('expected bytes with no null',)) l[:] = [{"abc" : Mapping({"\0" : 1})}]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using l[:] = [{"abc" : %s}] ! l[:] = [{"abc" : FailingIter()}]:(, TypeError('unable to convert to vim structure',)) l[:] = [{"abc" : FailingIterNext()}]:(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [{"abc" : %s}] ! l[:] = [{"abc" : None}]:(, TypeError('unable to convert to vim structure',)) l[:] = [{"abc" : {b"": 1}}]:(, ValueError('empty keys are not allowed',)) l[:] = [{"abc" : {"": 1}}]:(, ValueError('empty keys are not allowed',)) l[:] = [{"abc" : FailingMapping()}]:(, NotImplementedError()) l[:] = [{"abc" : FailingMappingKey()}]:(, NotImplementedError()) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({%s : 1})] ! l[:] = [Mapping({1 : 1})]:(, TypeError('object must be string',)) l[:] = [Mapping({b"\0" : 1})]:(, TypeError('expected bytes with no null',)) l[:] = [Mapping({"\0" : 1})]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({"abc" : {%s : 1}})] ! l[:] = [Mapping({"abc" : {1 : 1}})]:(, TypeError('object must be string',)) l[:] = [Mapping({"abc" : {b"\0" : 1}})]:(, TypeError('expected bytes with no null',)) l[:] = [Mapping({"abc" : {"\0" : 1}})]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({"abc" : Mapping({%s : 1})})] ! l[:] = [Mapping({"abc" : Mapping({1 : 1})})]:(, TypeError('object must be string',)) l[:] = [Mapping({"abc" : Mapping({b"\0" : 1})})]:(, TypeError('expected bytes with no null',)) l[:] = [Mapping({"abc" : Mapping({"\0" : 1})})]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using l[:] = [Mapping({"abc" : %s})] ! l[:] = [Mapping({"abc" : FailingIter()})]:(, TypeError('unable to convert to vim structure',)) l[:] = [Mapping({"abc" : FailingIterNext()})]:(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abc" : %s})] ! l[:] = [Mapping({"abc" : None})]:(, TypeError('unable to convert to vim structure',)) l[:] = [Mapping({"abc" : {b"": 1}})]:(, ValueError('empty keys are not allowed',)) l[:] = [Mapping({"abc" : {"": 1}})]:(, ValueError('empty keys are not allowed',)) l[:] = [Mapping({"abc" : FailingMapping()})]:(, NotImplementedError()) l[:] = [Mapping({"abc" : FailingMappingKey()})]:(, NotImplementedError()) <<< Finished >>> Testing *Iter* using l[:] = [%s] ! l[:] = [FailingIter()]:(, TypeError('unable to convert to vim structure',)) l[:] = [FailingIterNext()]:(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [%s] ! l[:] = [None]:(, TypeError('unable to convert to vim structure',)) l[:] = [{b"": 1}]:(, ValueError('empty keys are not allowed',)) l[:] = [{"": 1}]:(, ValueError('empty keys are not allowed',)) l[:] = [FailingMapping()]:(, NotImplementedError()) --- 764,826 ---- l[:] = FailingIterNext()::(, NotImplementedError()) <<< Finished >>> Testing StringToChars using l[:] = [{%s : 1}] ! l[:] = [{1 : 1}]:(, TypeError('expected bytes() or str() instance, but got int',)) l[:] = [{b"\0" : 1}]:(, TypeError('expected bytes with no null',)) l[:] = [{"\0" : 1}]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l[:] = [{"abc" : {%s : 1}}] ! l[:] = [{"abc" : {1 : 1}}]:(, TypeError('expected bytes() or str() instance, but got int',)) l[:] = [{"abc" : {b"\0" : 1}}]:(, TypeError('expected bytes with no null',)) l[:] = [{"abc" : {"\0" : 1}}]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l[:] = [{"abc" : Mapping({%s : 1})}] ! l[:] = [{"abc" : Mapping({1 : 1})}]:(, TypeError('expected bytes() or str() instance, but got int',)) l[:] = [{"abc" : Mapping({b"\0" : 1})}]:(, TypeError('expected bytes with no null',)) l[:] = [{"abc" : Mapping({"\0" : 1})}]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using l[:] = [{"abc" : %s}] ! l[:] = [{"abc" : FailingIter()}]:(, TypeError('unable to convert FailingIter to vim structure',)) l[:] = [{"abc" : FailingIterNext()}]:(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [{"abc" : %s}] ! l[:] = [{"abc" : None}]:(, TypeError('unable to convert NoneType to vim structure',)) l[:] = [{"abc" : {b"": 1}}]:(, ValueError('empty keys are not allowed',)) l[:] = [{"abc" : {"": 1}}]:(, ValueError('empty keys are not allowed',)) l[:] = [{"abc" : FailingMapping()}]:(, NotImplementedError()) l[:] = [{"abc" : FailingMappingKey()}]:(, NotImplementedError()) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({%s : 1})] ! l[:] = [Mapping({1 : 1})]:(, TypeError('expected bytes() or str() instance, but got int',)) l[:] = [Mapping({b"\0" : 1})]:(, TypeError('expected bytes with no null',)) l[:] = [Mapping({"\0" : 1})]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({"abc" : {%s : 1}})] ! l[:] = [Mapping({"abc" : {1 : 1}})]:(, TypeError('expected bytes() or str() instance, but got int',)) l[:] = [Mapping({"abc" : {b"\0" : 1}})]:(, TypeError('expected bytes with no null',)) l[:] = [Mapping({"abc" : {"\0" : 1}})]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l[:] = [Mapping({"abc" : Mapping({%s : 1})})] ! l[:] = [Mapping({"abc" : Mapping({1 : 1})})]:(, TypeError('expected bytes() or str() instance, but got int',)) l[:] = [Mapping({"abc" : Mapping({b"\0" : 1})})]:(, TypeError('expected bytes with no null',)) l[:] = [Mapping({"abc" : Mapping({"\0" : 1})})]:(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using l[:] = [Mapping({"abc" : %s})] ! l[:] = [Mapping({"abc" : FailingIter()})]:(, TypeError('unable to convert FailingIter to vim structure',)) l[:] = [Mapping({"abc" : FailingIterNext()})]:(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abc" : %s})] ! l[:] = [Mapping({"abc" : None})]:(, TypeError('unable to convert NoneType to vim structure',)) l[:] = [Mapping({"abc" : {b"": 1}})]:(, ValueError('empty keys are not allowed',)) l[:] = [Mapping({"abc" : {"": 1}})]:(, ValueError('empty keys are not allowed',)) l[:] = [Mapping({"abc" : FailingMapping()})]:(, NotImplementedError()) l[:] = [Mapping({"abc" : 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()) *************** *** 832,894 **** l.extend(FailingIterNext()):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using l.extend([{%s : 1}]) ! l.extend([{1 : 1}]):(, TypeError('object must be string',)) l.extend([{b"\0" : 1}]):(, TypeError('expected bytes with no null',)) l.extend([{"\0" : 1}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l.extend([{"abc" : {%s : 1}}]) ! l.extend([{"abc" : {1 : 1}}]):(, TypeError('object must be string',)) l.extend([{"abc" : {b"\0" : 1}}]):(, TypeError('expected bytes with no null',)) l.extend([{"abc" : {"\0" : 1}}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l.extend([{"abc" : Mapping({%s : 1})}]) ! l.extend([{"abc" : Mapping({1 : 1})}]):(, TypeError('object must be string',)) l.extend([{"abc" : Mapping({b"\0" : 1})}]):(, TypeError('expected bytes with no null',)) l.extend([{"abc" : Mapping({"\0" : 1})}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using l.extend([{"abc" : %s}]) ! l.extend([{"abc" : FailingIter()}]):(, TypeError('unable to convert to vim structure',)) l.extend([{"abc" : FailingIterNext()}]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l.extend([{"abc" : %s}]) ! l.extend([{"abc" : None}]):(, TypeError('unable to convert to vim structure',)) l.extend([{"abc" : {b"": 1}}]):(, ValueError('empty keys are not allowed',)) l.extend([{"abc" : {"": 1}}]):(, ValueError('empty keys are not allowed',)) l.extend([{"abc" : FailingMapping()}]):(, NotImplementedError()) l.extend([{"abc" : FailingMappingKey()}]):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using l.extend([Mapping({%s : 1})]) ! l.extend([Mapping({1 : 1})]):(, TypeError('object must be string',)) l.extend([Mapping({b"\0" : 1})]):(, TypeError('expected bytes with no null',)) l.extend([Mapping({"\0" : 1})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l.extend([Mapping({"abc" : {%s : 1}})]) ! l.extend([Mapping({"abc" : {1 : 1}})]):(, TypeError('object must be string',)) l.extend([Mapping({"abc" : {b"\0" : 1}})]):(, TypeError('expected bytes with no null',)) l.extend([Mapping({"abc" : {"\0" : 1}})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l.extend([Mapping({"abc" : Mapping({%s : 1})})]) ! l.extend([Mapping({"abc" : Mapping({1 : 1})})]):(, TypeError('object must be string',)) l.extend([Mapping({"abc" : Mapping({b"\0" : 1})})]):(, TypeError('expected bytes with no null',)) l.extend([Mapping({"abc" : Mapping({"\0" : 1})})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using l.extend([Mapping({"abc" : %s})]) ! l.extend([Mapping({"abc" : FailingIter()})]):(, TypeError('unable to convert to vim structure',)) l.extend([Mapping({"abc" : FailingIterNext()})]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l.extend([Mapping({"abc" : %s})]) ! l.extend([Mapping({"abc" : None})]):(, TypeError('unable to convert to vim structure',)) l.extend([Mapping({"abc" : {b"": 1}})]):(, ValueError('empty keys are not allowed',)) l.extend([Mapping({"abc" : {"": 1}})]):(, ValueError('empty keys are not allowed',)) l.extend([Mapping({"abc" : FailingMapping()})]):(, NotImplementedError()) l.extend([Mapping({"abc" : FailingMappingKey()})]):(, NotImplementedError()) <<< Finished >>> Testing *Iter* using l.extend([%s]) ! l.extend([FailingIter()]):(, TypeError('unable to convert to vim structure',)) l.extend([FailingIterNext()]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l.extend([%s]) ! l.extend([None]):(, TypeError('unable to convert 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()) --- 832,894 ---- 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',)) l.extend([{b"\0" : 1}]):(, TypeError('expected bytes with no null',)) l.extend([{"\0" : 1}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l.extend([{"abc" : {%s : 1}}]) ! l.extend([{"abc" : {1 : 1}}]):(, TypeError('expected bytes() or str() instance, but got int',)) l.extend([{"abc" : {b"\0" : 1}}]):(, TypeError('expected bytes with no null',)) l.extend([{"abc" : {"\0" : 1}}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l.extend([{"abc" : Mapping({%s : 1})}]) ! l.extend([{"abc" : Mapping({1 : 1})}]):(, TypeError('expected bytes() or str() instance, but got int',)) l.extend([{"abc" : Mapping({b"\0" : 1})}]):(, TypeError('expected bytes with no null',)) l.extend([{"abc" : Mapping({"\0" : 1})}]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using l.extend([{"abc" : %s}]) ! l.extend([{"abc" : FailingIter()}]):(, TypeError('unable to convert FailingIter to vim structure',)) l.extend([{"abc" : FailingIterNext()}]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l.extend([{"abc" : %s}]) ! l.extend([{"abc" : None}]):(, TypeError('unable to convert NoneType to vim structure',)) l.extend([{"abc" : {b"": 1}}]):(, ValueError('empty keys are not allowed',)) l.extend([{"abc" : {"": 1}}]):(, ValueError('empty keys are not allowed',)) l.extend([{"abc" : FailingMapping()}]):(, NotImplementedError()) l.extend([{"abc" : 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',)) l.extend([Mapping({b"\0" : 1})]):(, TypeError('expected bytes with no null',)) l.extend([Mapping({"\0" : 1})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l.extend([Mapping({"abc" : {%s : 1}})]) ! l.extend([Mapping({"abc" : {1 : 1}})]):(, TypeError('expected bytes() or str() instance, but got int',)) l.extend([Mapping({"abc" : {b"\0" : 1}})]):(, TypeError('expected bytes with no null',)) l.extend([Mapping({"abc" : {"\0" : 1}})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using l.extend([Mapping({"abc" : Mapping({%s : 1})})]) ! l.extend([Mapping({"abc" : Mapping({1 : 1})})]):(, TypeError('expected bytes() or str() instance, but got int',)) l.extend([Mapping({"abc" : Mapping({b"\0" : 1})})]):(, TypeError('expected bytes with no null',)) l.extend([Mapping({"abc" : Mapping({"\0" : 1})})]):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using l.extend([Mapping({"abc" : %s})]) ! l.extend([Mapping({"abc" : FailingIter()})]):(, TypeError('unable to convert FailingIter to vim structure',)) l.extend([Mapping({"abc" : FailingIterNext()})]):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using l.extend([Mapping({"abc" : %s})]) ! l.extend([Mapping({"abc" : None})]):(, TypeError('unable to convert NoneType to vim structure',)) l.extend([Mapping({"abc" : {b"": 1}})]):(, ValueError('empty keys are not allowed',)) l.extend([Mapping({"abc" : {"": 1}})]):(, ValueError('empty keys are not allowed',)) l.extend([Mapping({"abc" : FailingMapping()})]):(, NotImplementedError()) l.extend([Mapping({"abc" : 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()) *************** *** 897,1030 **** >> ListSetattr del l.locked:(, AttributeError('cannot delete vim.List attributes',)) l.locked = FailingTrue():(, NotImplementedError()) ! l.xxx = True:(, AttributeError('cannot set this attribute',)) > Function >> FunctionConstructor ! vim.Function("123"):(, ValueError('unnamed function does not exist',)) ! vim.Function("xxx_non_existent_function_xxx"):(, ValueError('function does not exist',)) vim.Function("xxx#non#existent#function#xxx"):NOT FAILED >> FunctionCall >>> Testing StringToChars using f({%s : 1}) ! f({1 : 1}):(, TypeError('object must be string',)) f({b"\0" : 1}):(, TypeError('expected bytes with no null',)) f({"\0" : 1}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using f({"abc" : {%s : 1}}) ! f({"abc" : {1 : 1}}):(, TypeError('object must be string',)) f({"abc" : {b"\0" : 1}}):(, TypeError('expected bytes with no null',)) f({"abc" : {"\0" : 1}}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using f({"abc" : Mapping({%s : 1})}) ! f({"abc" : Mapping({1 : 1})}):(, TypeError('object must be string',)) f({"abc" : Mapping({b"\0" : 1})}):(, TypeError('expected bytes with no null',)) f({"abc" : Mapping({"\0" : 1})}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using f({"abc" : %s}) ! f({"abc" : FailingIter()}):(, TypeError('unable to convert to vim structure',)) f({"abc" : FailingIterNext()}):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using f({"abc" : %s}) ! f({"abc" : None}):(, TypeError('unable to convert to vim structure',)) f({"abc" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) f({"abc" : {"": 1}}):(, ValueError('empty keys are not allowed',)) f({"abc" : FailingMapping()}):(, NotImplementedError()) f({"abc" : FailingMappingKey()}):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using f(Mapping({%s : 1})) ! f(Mapping({1 : 1})):(, TypeError('object must be string',)) f(Mapping({b"\0" : 1})):(, TypeError('expected bytes with no null',)) f(Mapping({"\0" : 1})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using f(Mapping({"abc" : {%s : 1}})) ! f(Mapping({"abc" : {1 : 1}})):(, TypeError('object must be string',)) f(Mapping({"abc" : {b"\0" : 1}})):(, TypeError('expected bytes with no null',)) f(Mapping({"abc" : {"\0" : 1}})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using f(Mapping({"abc" : Mapping({%s : 1})})) ! f(Mapping({"abc" : Mapping({1 : 1})})):(, TypeError('object must be string',)) f(Mapping({"abc" : Mapping({b"\0" : 1})})):(, TypeError('expected bytes with no null',)) f(Mapping({"abc" : Mapping({"\0" : 1})})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using f(Mapping({"abc" : %s})) ! f(Mapping({"abc" : FailingIter()})):(, TypeError('unable to convert to vim structure',)) f(Mapping({"abc" : FailingIterNext()})):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using f(Mapping({"abc" : %s})) ! f(Mapping({"abc" : None})):(, TypeError('unable to convert to vim structure',)) f(Mapping({"abc" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) f(Mapping({"abc" : {"": 1}})):(, ValueError('empty keys are not allowed',)) f(Mapping({"abc" : FailingMapping()})):(, NotImplementedError()) f(Mapping({"abc" : FailingMappingKey()})):(, NotImplementedError()) <<< Finished >>> Testing *Iter* using f(%s) ! f(FailingIter()):(, TypeError('unable to convert to vim structure',)) f(FailingIterNext()):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using f(%s) ! f(None):(, TypeError('unable to convert 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('object must be string',)) fd(self={b"\0" : 1}):(, TypeError('expected bytes with no null',)) fd(self={"\0" : 1}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using fd(self={"abc" : {%s : 1}}) ! fd(self={"abc" : {1 : 1}}):(, TypeError('object must be string',)) fd(self={"abc" : {b"\0" : 1}}):(, TypeError('expected bytes with no null',)) fd(self={"abc" : {"\0" : 1}}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using fd(self={"abc" : Mapping({%s : 1})}) ! fd(self={"abc" : Mapping({1 : 1})}):(, TypeError('object must be string',)) fd(self={"abc" : Mapping({b"\0" : 1})}):(, TypeError('expected bytes with no null',)) fd(self={"abc" : Mapping({"\0" : 1})}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using fd(self={"abc" : %s}) ! fd(self={"abc" : FailingIter()}):(, TypeError('unable to convert to vim structure',)) fd(self={"abc" : FailingIterNext()}):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using fd(self={"abc" : %s}) ! fd(self={"abc" : None}):(, TypeError('unable to convert to vim structure',)) fd(self={"abc" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) fd(self={"abc" : {"": 1}}):(, ValueError('empty keys are not allowed',)) fd(self={"abc" : FailingMapping()}):(, NotImplementedError()) fd(self={"abc" : FailingMappingKey()}):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using fd(self=Mapping({%s : 1})) ! fd(self=Mapping({1 : 1})):(, TypeError('object must be string',)) fd(self=Mapping({b"\0" : 1})):(, TypeError('expected bytes with no null',)) fd(self=Mapping({"\0" : 1})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using fd(self=Mapping({"abc" : {%s : 1}})) ! fd(self=Mapping({"abc" : {1 : 1}})):(, TypeError('object must be string',)) fd(self=Mapping({"abc" : {b"\0" : 1}})):(, TypeError('expected bytes with no null',)) fd(self=Mapping({"abc" : {"\0" : 1}})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using fd(self=Mapping({"abc" : Mapping({%s : 1})})) ! fd(self=Mapping({"abc" : Mapping({1 : 1})})):(, TypeError('object must be string',)) fd(self=Mapping({"abc" : Mapping({b"\0" : 1})})):(, TypeError('expected bytes with no null',)) fd(self=Mapping({"abc" : Mapping({"\0" : 1})})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using fd(self=Mapping({"abc" : %s})) ! fd(self=Mapping({"abc" : FailingIter()})):(, TypeError('unable to convert to vim structure',)) fd(self=Mapping({"abc" : FailingIterNext()})):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using fd(self=Mapping({"abc" : %s})) ! fd(self=Mapping({"abc" : None})):(, TypeError('unable to convert to vim structure',)) fd(self=Mapping({"abc" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) fd(self=Mapping({"abc" : {"": 1}})):(, ValueError('empty keys are not allowed',)) fd(self=Mapping({"abc" : FailingMapping()})):(, NotImplementedError()) fd(self=Mapping({"abc" : FailingMappingKey()})):(, NotImplementedError()) <<< Finished >>> Testing *Iter* using fd(self=%s) ! fd(self=FailingIter()):(, TypeError('unable to convert object to vim dictionary',)) ! fd(self=FailingIterNext()):(, TypeError('unable to convert object to vim dictionary',)) <<< Finished >>> Testing ConvertFromPyObject using fd(self=%s) ! fd(self=None):(, TypeError('unable to convert object 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()) --- 897,1030 ---- >> ListSetattr del l.locked:(, AttributeError('cannot delete vim.List attributes',)) l.locked = FailingTrue():(, NotImplementedError()) ! l.xxx = True:(, AttributeError('cannot set attribute xxx',)) > Function >> FunctionConstructor ! vim.Function("123"):(, ValueError('unnamed function 123 does not exist',)) ! vim.Function("xxx_non_existent_function_xxx"):(, ValueError('function xxx_non_existent_function_xxx does not exist',)) vim.Function("xxx#non#existent#function#xxx"):NOT FAILED >> FunctionCall >>> Testing StringToChars using f({%s : 1}) ! f({1 : 1}):(, TypeError('expected bytes() or str() instance, but got int',)) f({b"\0" : 1}):(, TypeError('expected bytes with no null',)) f({"\0" : 1}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using f({"abc" : {%s : 1}}) ! f({"abc" : {1 : 1}}):(, TypeError('expected bytes() or str() instance, but got int',)) f({"abc" : {b"\0" : 1}}):(, TypeError('expected bytes with no null',)) f({"abc" : {"\0" : 1}}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using f({"abc" : Mapping({%s : 1})}) ! f({"abc" : Mapping({1 : 1})}):(, TypeError('expected bytes() or str() instance, but got int',)) f({"abc" : Mapping({b"\0" : 1})}):(, TypeError('expected bytes with no null',)) f({"abc" : Mapping({"\0" : 1})}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using f({"abc" : %s}) ! f({"abc" : FailingIter()}):(, TypeError('unable to convert FailingIter to vim structure',)) f({"abc" : FailingIterNext()}):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using f({"abc" : %s}) ! f({"abc" : None}):(, TypeError('unable to convert NoneType to vim structure',)) f({"abc" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) f({"abc" : {"": 1}}):(, ValueError('empty keys are not allowed',)) f({"abc" : FailingMapping()}):(, NotImplementedError()) f({"abc" : FailingMappingKey()}):(, NotImplementedError()) <<< Finished >>> Testing StringToChars using f(Mapping({%s : 1})) ! f(Mapping({1 : 1})):(, TypeError('expected bytes() or str() instance, but got int',)) f(Mapping({b"\0" : 1})):(, TypeError('expected bytes with no null',)) f(Mapping({"\0" : 1})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using f(Mapping({"abc" : {%s : 1}})) ! f(Mapping({"abc" : {1 : 1}})):(, TypeError('expected bytes() or str() instance, but got int',)) f(Mapping({"abc" : {b"\0" : 1}})):(, TypeError('expected bytes with no null',)) f(Mapping({"abc" : {"\0" : 1}})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using f(Mapping({"abc" : Mapping({%s : 1})})) ! f(Mapping({"abc" : Mapping({1 : 1})})):(, TypeError('expected bytes() or str() instance, but got int',)) f(Mapping({"abc" : Mapping({b"\0" : 1})})):(, TypeError('expected bytes with no null',)) f(Mapping({"abc" : Mapping({"\0" : 1})})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using f(Mapping({"abc" : %s})) ! f(Mapping({"abc" : FailingIter()})):(, TypeError('unable to convert FailingIter to vim structure',)) f(Mapping({"abc" : FailingIterNext()})):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using f(Mapping({"abc" : %s})) ! f(Mapping({"abc" : None})):(, TypeError('unable to convert NoneType to vim structure',)) f(Mapping({"abc" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) f(Mapping({"abc" : {"": 1}})):(, ValueError('empty keys are not allowed',)) f(Mapping({"abc" : FailingMapping()})):(, NotImplementedError()) f(Mapping({"abc" : 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',)) fd(self={b"\0" : 1}):(, TypeError('expected bytes with no null',)) fd(self={"\0" : 1}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using fd(self={"abc" : {%s : 1}}) ! fd(self={"abc" : {1 : 1}}):(, TypeError('expected bytes() or str() instance, but got int',)) fd(self={"abc" : {b"\0" : 1}}):(, TypeError('expected bytes with no null',)) fd(self={"abc" : {"\0" : 1}}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using fd(self={"abc" : Mapping({%s : 1})}) ! fd(self={"abc" : Mapping({1 : 1})}):(, TypeError('expected bytes() or str() instance, but got int',)) fd(self={"abc" : Mapping({b"\0" : 1})}):(, TypeError('expected bytes with no null',)) fd(self={"abc" : Mapping({"\0" : 1})}):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using fd(self={"abc" : %s}) ! fd(self={"abc" : FailingIter()}):(, TypeError('unable to convert FailingIter to vim structure',)) fd(self={"abc" : FailingIterNext()}):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using fd(self={"abc" : %s}) ! fd(self={"abc" : None}):(, TypeError('unable to convert NoneType to vim structure',)) fd(self={"abc" : {b"": 1}}):(, ValueError('empty keys are not allowed',)) fd(self={"abc" : {"": 1}}):(, ValueError('empty keys are not allowed',)) fd(self={"abc" : FailingMapping()}):(, NotImplementedError()) fd(self={"abc" : 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',)) fd(self=Mapping({b"\0" : 1})):(, TypeError('expected bytes with no null',)) fd(self=Mapping({"\0" : 1})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using fd(self=Mapping({"abc" : {%s : 1}})) ! fd(self=Mapping({"abc" : {1 : 1}})):(, TypeError('expected bytes() or str() instance, but got int',)) fd(self=Mapping({"abc" : {b"\0" : 1}})):(, TypeError('expected bytes with no null',)) fd(self=Mapping({"abc" : {"\0" : 1}})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing StringToChars using fd(self=Mapping({"abc" : Mapping({%s : 1})})) ! fd(self=Mapping({"abc" : Mapping({1 : 1})})):(, TypeError('expected bytes() or str() instance, but got int',)) fd(self=Mapping({"abc" : Mapping({b"\0" : 1})})):(, TypeError('expected bytes with no null',)) fd(self=Mapping({"abc" : Mapping({"\0" : 1})})):(, TypeError('expected bytes with no null',)) <<< Finished >>> Testing *Iter* using fd(self=Mapping({"abc" : %s})) ! fd(self=Mapping({"abc" : FailingIter()})):(, TypeError('unable to convert FailingIter to vim structure',)) fd(self=Mapping({"abc" : FailingIterNext()})):(, NotImplementedError()) <<< Finished >>> Testing ConvertFromPyObject using fd(self=Mapping({"abc" : %s})) ! fd(self=Mapping({"abc" : None})):(, TypeError('unable to convert NoneType to vim structure',)) fd(self=Mapping({"abc" : {b"": 1}})):(, ValueError('empty keys are not allowed',)) fd(self=Mapping({"abc" : {"": 1}})):(, ValueError('empty keys are not allowed',)) fd(self=Mapping({"abc" : FailingMapping()})):(, NotImplementedError()) fd(self=Mapping({"abc" : FailingMappingKey()})):(, NotImplementedError()) <<< Finished >>> Testing *Iter* using fd(self=%s) ! fd(self=FailingIter()):(, TypeError('unable to convert FailingIter to vim dictionary',)) ! fd(self=FailingIterNext()):(, TypeError('unable to convert FailingIterNext to vim dictionary',)) <<< Finished >>> Testing ConvertFromPyObject using fd(self=%s) ! 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()) *************** *** 1043,1049 **** >> WindowAttr vim.current.window.xxx:(, AttributeError("'vim.window' object has no attribute 'xxx'",)) >> WindowSetattr ! vim.current.window.buffer = 0:(, TypeError('readonly attribute',)) 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 = "abc":(, TypeError('an integer is required',)) --- 1043,1049 ---- >> WindowAttr vim.current.window.xxx:(, AttributeError("'vim.window' object has no attribute 'xxx'",)) >> WindowSetattr ! 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 = "abc":(, TypeError('an integer is required',)) *************** *** 1071,1080 **** >> BufferAttr vim.current.buffer.xxx:(, AttributeError("'vim.buffer' object has no attribute 'xxx'",)) >> BufferSetattr ! vim.current.buffer.name = True:(, TypeError('object must be string',)) vim.current.buffer.xxx = True:(, AttributeError('xxx',)) >> BufferMark ! vim.current.buffer.mark(0):(, TypeError('object must be string',)) vim.current.buffer.mark("abc"):(, ValueError('mark name must be a single character',)) vim.current.buffer.mark("!"):(, error('invalid mark name',)) >> BufferRange --- 1071,1080 ---- >> BufferAttr vim.current.buffer.xxx:(, AttributeError("'vim.buffer' object has no attribute 'xxx'",)) >> BufferSetattr ! vim.current.buffer.name = True:(, TypeError('expected bytes() or str() instance, but got bool',)) vim.current.buffer.xxx = True:(, AttributeError('xxx',)) >> BufferMark ! vim.current.buffer.mark(0):(, TypeError('expected bytes() or str() instance, but got int',)) vim.current.buffer.mark("abc"):(, ValueError('mark name must be a single character',)) vim.current.buffer.mark("!"):(, error('invalid mark name',)) >> BufferRange *************** *** 1088,1096 **** vim.current.xxx:(, AttributeError("'vim.currentdata' object has no attribute 'xxx'",)) >> CurrentSetattr vim.current.line = True:(, TypeError('bad argument type for built-in operation',)) ! vim.current.buffer = True:(, TypeError('expected vim.Buffer object',)) ! vim.current.window = True:(, TypeError('expected vim.Window object',)) ! vim.current.tabpage = True:(, TypeError('expected vim.TabPage object',)) vim.current.xxx = True:(, AttributeError('xxx',)) 3,xx before --- 1088,1096 ---- vim.current.xxx:(, AttributeError("'vim.currentdata' object has no attribute 'xxx'",)) >> CurrentSetattr vim.current.line = True:(, TypeError('bad argument type for built-in operation',)) ! vim.current.buffer = True:(, TypeError('expected vim.Buffer object, but got bool',)) ! vim.current.window = True:(, TypeError('expected vim.Window object, but got bool',)) ! vim.current.tabpage = True:(, TypeError('expected vim.TabPage object, but got bool',)) vim.current.xxx = True:(, AttributeError('xxx',)) 3,xx before *** ../vim-7.3.1229/src/version.c 2013-06-23 13:28:11.000000000 +0200 --- src/version.c 2013-06-23 13:30:05.000000000 +0200 *************** *** 730,731 **** --- 730,733 ---- { /* Add new patch number below this line */ + /**/ + 1230, /**/ -- MAN: You don't frighten us, English pig-dog! Go and boil your bottoms, son of a silly person. I blow my nose on you, so-called Arthur-king, you and your silly English K...kaniggets. He puts hands to his ears and blows a raspberry. "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// 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 ///