diff --git a/7.3.1066 b/7.3.1066 new file mode 100644 index 0000000..8bb89b5 --- /dev/null +++ b/7.3.1066 @@ -0,0 +1,1979 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.1066 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.1066 +Problem: Python: Insufficient exception and error testing. +Solution: Python patch 25. (ZyX) +Files: src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + + +*** ../vim-7.3.1065/src/testdir/test86.in 2013-05-30 13:14:06.000000000 +0200 +--- src/testdir/test86.in 2013-05-30 13:25:22.000000000 +0200 +*************** +*** 7,12 **** +--- 7,13 ---- + + STARTTEST + :so small.vim ++ :set encoding=latin1 + :if !has('python') | e! test.ok | wq! test.out | endif + :lang C + :py import vim +*************** +*** 785,800 **** + :$put =string(pyeval('dl2')) + :$put =string(pyeval('df(2)')) + :" +! :" Test exceptions +! :fun Exe(e) +! : execute a:e + :endfun + py << EOF + def ee(expr, g=globals(), l=locals()): + try: + exec(expr, g, l) + except: +! cb.append(repr(sys.exc_info()[:2])) + Exe = vim.bindeval('function("Exe")') + ee('vim.command("throw \'abc\'")') + ee('Exe("throw \'def\'")') +--- 786,1062 ---- + :$put =string(pyeval('dl2')) + :$put =string(pyeval('df(2)')) + :" +! :" Test errors +! :fun F() dict +! :endfun +! :fun D() + :endfun + py << EOF + def ee(expr, g=globals(), l=locals()): + try: + exec(expr, g, l) + except: +! cb.append(expr + ':' + repr(sys.exc_info()[:2])) +! else: +! cb.append(expr + ':NOT FAILED') +! d = vim.Dictionary() +! ned = vim.Dictionary(foo='bar', baz='abc') +! dl = vim.Dictionary(a=1) +! dl.locked = True +! l = vim.List() +! ll = vim.List('abc') +! ll.locked = True +! f = vim.Function('string') +! fd = vim.Function('F') +! fdel = vim.Function('D') +! vim.command('delfunction D') +! +! def subexpr_test(expr, name, subexprs): +! cb.append('>>> Testing %s using %s' % (name, expr)) +! for subexpr in subexprs: +! ee(expr % subexpr) +! cb.append('<<< Finished') +! +! def stringtochars_test(expr): +! return subexpr_test(expr, 'StringToChars', ( +! '1', # Fail type checks +! 'u"\\0"', # Fail PyString_AsStringAndSize(bytes, , NULL) check +! '"\\0"', # Fail PyString_AsStringAndSize(object, , NULL) check +! )) +! +! class Mapping(object): +! def __init__(self, d): +! self.d = d +! +! def __getitem__(self, key): +! return self.d[key] +! +! def keys(self): +! return self.d.keys() +! +! def items(self): +! return self.d.items() +! +! def convertfrompyobject_test(expr, recurse=True): +! # pydict_to_tv +! stringtochars_test(expr % '{%s : 1}') +! if recurse: +! convertfrompyobject_test(expr % '{"abc" : %s}', False) +! # pymap_to_tv +! stringtochars_test(expr % 'Mapping({%s : 1})') +! if recurse: +! convertfrompyobject_test(expr % 'Mapping({"abc" : %s})', False) +! # pyseq_to_tv +! iter_test(expr) +! return subexpr_test(expr, 'ConvertFromPyObject', ( +! 'None', # Not conversible +! '{"": 1}', # Empty key not allowed +! 'FailingMapping()', # +! 'FailingMappingKey()', # +! )) +! +! def convertfrompymapping_test(expr): +! convertfrompyobject_test(expr) +! return subexpr_test(expr, 'ConvertFromPyMapping', ( +! '[]', +! )) +! +! def iter_test(expr): +! return subexpr_test(expr, '*Iter*', ( +! 'FailingIter()', +! 'FailingIterNext()', +! )) +! +! class FailingTrue(object): +! def __nonzero__(self): +! raise NotImplementedError +! +! class FailingIter(object): +! def __iter__(self): +! raise NotImplementedError +! +! class FailingIterNext(object): +! def __iter__(self): +! return self +! +! def next(self): +! raise NotImplementedError +! +! class FailingMappingKey(object): +! def __getitem__(self, item): +! raise NotImplementedError +! +! def keys(self): +! return list("abc") +! +! class FailingMapping(object): +! def __getitem__(self): +! raise NotImplementedError +! +! def keys(self): +! raise NotImplementedError +! +! class FailingList(list): +! def __getitem__(self, idx): +! if i == 2: +! raise NotImplementedError +! else: +! return super(FailingList, self).__getitem__(idx) +! +! cb.append("> Output") +! cb.append(">> OutputSetattr") +! ee('del sys.stdout.softspace') +! ee('sys.stdout.softspace = []') +! ee('sys.stdout.attr = None') +! cb.append(">> OutputWrite") +! ee('sys.stdout.write(None)') +! cb.append(">> OutputWriteLines") +! ee('sys.stdout.writelines(None)') +! ee('sys.stdout.writelines([1])') +! iter_test('sys.stdout.writelines(%s)') +! cb.append("> VimCommand") +! ee('vim.command(1)') +! #! Not checked: vim->python exceptions translating: checked later +! cb.append("> VimToPython") +! #! Not checked: everything: needs errors in internal python functions +! cb.append("> VimEval") +! ee('vim.eval(1)') +! #! Not checked: everything: needs errors in internal python functions +! cb.append("> VimEvalPy") +! ee('vim.bindeval(1)') +! #! Not checked: vim->python exceptions translating: checked later +! cb.append("> VimStrwidth") +! ee('vim.strwidth(1)') +! cb.append("> Dictionary") +! cb.append(">> DictionaryConstructor") +! ee('vim.Dictionary("abc")') +! ##! Not checked: py_dict_alloc failure +! cb.append(">> DictionarySetattr") +! ee('del d.locked') +! ee('d.locked = FailingTrue()') +! ee('vim.vvars.locked = False') +! ee('d.scope = True') +! ee('d.xxx = True') +! cb.append(">> _DictionaryItem") +! ee('d.get("a", 2, 3)') +! stringtochars_test('d.get(%s)') +! ee('d.pop("a")') +! ee('dl.pop("a")') +! cb.append(">> DictionaryIterNext") +! ee('for i in ned: ned["a"] = 1') +! cb.append(">> DictionaryAssItem") +! ee('dl["b"] = 1') +! stringtochars_test('d[%s] = 1') +! convertfrompyobject_test('d["a"] = %s') +! cb.append(">> DictionaryUpdate") +! cb.append(">>> kwargs") +! cb.append(">>> iter") +! ee('d.update(FailingMapping())') +! ee('d.update([FailingIterNext()])') +! iter_test('d.update(%s)') +! convertfrompyobject_test('d.update(%s)') +! stringtochars_test('d.update(((%s, 0),))') +! convertfrompyobject_test('d.update((("a", %s),))') +! cb.append(">> DictionaryPopItem") +! ee('d.popitem(1, 2)') +! cb.append(">> DictionaryHasKey") +! ee('d.has_key()') +! cb.append("> List") +! cb.append(">> ListConstructor") +! ee('vim.List(1, 2)') +! ee('vim.List(a=1)') +! iter_test('vim.List(%s)') +! convertfrompyobject_test('vim.List([%s])') +! cb.append(">> ListItem") +! ee('l[1000]') +! cb.append(">> ListAssItem") +! ee('ll[1] = 2') +! ee('l[1000] = 3') +! cb.append(">> ListAssSlice") +! ee('ll[1:100] = "abc"') +! iter_test('l[:] = %s') +! convertfrompyobject_test('l[:] = [%s]') +! cb.append(">> ListConcatInPlace") +! iter_test('l.extend(%s)') +! convertfrompyobject_test('l.extend([%s])') +! cb.append(">> ListSetattr") +! ee('del l.locked') +! ee('l.locked = FailingTrue()') +! ee('l.xxx = True') +! cb.append("> Function") +! cb.append(">> FunctionConstructor") +! ee('vim.Function("123")') +! ee('vim.Function("xxx_non_existent_function_xxx")') +! ee('vim.Function("xxx#non#existent#function#xxx")') +! cb.append(">> FunctionCall") +! convertfrompyobject_test('f(%s)') +! convertfrompymapping_test('fd(self=%s)') +! cb.append("> TabPage") +! cb.append(">> TabPageAttr") +! ee('vim.current.tabpage.xxx') +! cb.append("> TabList") +! cb.append(">> TabListItem") +! ee('vim.tabpages[1000]') +! cb.append("> Window") +! cb.append(">> WindowAttr") +! ee('vim.current.window.xxx') +! cb.append(">> WindowSetattr") +! ee('vim.current.window.buffer = 0') +! ee('vim.current.window.cursor = (10000000000, 100000000)') +! ee('vim.current.window.cursor = True') +! ee('vim.current.window.height = "abc"') +! ee('vim.current.window.width = "abc"') +! ee('vim.current.window.xxxxxx = True') +! cb.append("> WinList") +! cb.append(">> WinListItem") +! ee('vim.windows[1000]') +! cb.append("> Buffer") +! cb.append(">> StringToLine (indirect)") +! ee('vim.current.buffer[0] = "\\na"') +! cb.append(">> SetBufferLine (indirect)") +! ee('vim.current.buffer[0] = True') +! cb.append(">> SetBufferLines (indirect)") +! ee('vim.current.buffer[:] = True') +! ee('vim.current.buffer[:] = ["\\na", "bc"]') +! cb.append(">> InsertBufferLines (indirect)") +! ee('vim.current.buffer.append(None)') +! ee('vim.current.buffer.append(["\\na", "bc"])') +! ee('vim.current.buffer.append("\\nbc")') +! cb.append(">> RBItem") +! ee('vim.current.buffer[10000000000]') +! cb.append(">> RBAsItem") +! ee('vim.current.buffer[10000000000] = ""') +! cb.append(">> BufferAttr") +! ee('vim.current.buffer.xxx') +! cb.append(">> BufferSetattr") +! ee('vim.current.buffer.name = True') +! ee('vim.current.buffer.xxx = True') +! cb.append(">> BufferMark") +! ee('vim.current.buffer.mark(0)') +! ee('vim.current.buffer.mark("abc")') +! ee('vim.current.buffer.mark("!")') +! cb.append(">> BufferRange") +! ee('vim.current.buffer.range(1, 2, 3)') +! cb.append("> BufMap") +! cb.append(">> BufMapItem") +! ee('vim.buffers[None]') +! ee('vim.buffers[100000000]') +! cb.append("> Current") +! cb.append(">> CurrentGetattr") +! ee('vim.current.xxx') +! cb.append(">> CurrentSetattr") +! ee('vim.current.line = True') +! ee('vim.current.buffer = True') +! ee('vim.current.window = True') +! ee('vim.current.tabpage = True') +! ee('vim.current.xxx = True') +! EOF +! :" +! :" Test exceptions +! :fun Exe(e) +! : execute a:e +! :endfun +! py << EOF + Exe = vim.bindeval('function("Exe")') + ee('vim.command("throw \'abc\'")') + ee('Exe("throw \'def\'")') +*** ../vim-7.3.1065/src/testdir/test86.ok 2013-05-30 13:14:06.000000000 +0200 +--- src/testdir/test86.ok 2013-05-30 13:25:22.000000000 +0200 +*************** +*** 429,437 **** + ['a', 'b', 'c'] + [2, 2] + [2, 2] +! (, error('abc',)) +! (, error('def',)) +! (, error('ghi',)) +! (, error('Vim(echoerr):jkl',)) +! (, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) +! (, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) +--- 429,1081 ---- + ['a', 'b', 'c'] + [2, 2] + [2, 2] +! > Output +! >> 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('writelines() requires list of strings',)) +! >>> Testing *Iter* using sys.stdout.writelines(%s) +! sys.stdout.writelines(FailingIter()):(, NotImplementedError()) +! sys.stdout.writelines(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! > VimCommand +! vim.command(1):(, TypeError('must be string, not int',)) +! > VimToPython +! > VimEval +! vim.eval(1):(, TypeError('must be string, not int',)) +! > VimEvalPy +! vim.bindeval(1):(, TypeError('must be string, not int',)) +! > VimStrwidth +! vim.strwidth(1):(, TypeError('must be string, not int',)) +! > 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" : 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" : 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"] = FailingMapping():(, NotImplementedError()) +! d["a"] = FailingMappingKey():(, NotImplementedError()) +! <<< Finished +! >> DictionaryUpdate +! >>> kwargs +! >>> iter +! d.update(FailingMapping()):(, NotImplementedError()) +! d.update([FailingIterNext()]):(, NotImplementedError()) +! >>> Testing *Iter* using d.update(%s) +! d.update(FailingIter()):(, NotImplementedError()) +! d.update(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! >>> Testing StringToChars using d.update({%s : 1}) +! d.update({1 : 1}):(, TypeError('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" : 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" : FailingMapping()})):(, NotImplementedError()) +! d.update(Mapping({"abc" : FailingMappingKey()})):(, NotImplementedError()) +! <<< Finished +! >>> Testing *Iter* using d.update(%s) +! d.update(FailingIter()):(, NotImplementedError()) +! d.update(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! >>> Testing ConvertFromPyObject using d.update(%s) +! d.update(None):(, TypeError("'NoneType' object is not iterable",)) +! d.update({"": 1}):(, ValueError('empty keys are not allowed',)) +! d.update(FailingMapping()):(, NotImplementedError()) +! 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" : 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" : 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", FailingMapping()),)):(, NotImplementedError()) +! d.update((("a", FailingMappingKey()),)):(, NotImplementedError()) +! <<< Finished +! >> DictionaryPopItem +! d.popitem(1, 2):(, TypeError('function takes exactly 1 argument (2 given)',)) +! >> DictionaryHasKey +! d.has_key():(, TypeError('function takes exactly 1 argument (0 given)',)) +! > List +! >> ListConstructor +! vim.List(1, 2):(, TypeError('function takes at most 1 argument (2 given)',)) +! vim.List(a=1):(, TypeError('list constructor does not accept keyword arguments',)) +! >>> Testing *Iter* using vim.List(%s) +! vim.List(FailingIter()):(, NotImplementedError()) +! vim.List(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! >>> 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" : 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" : 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([FailingMapping()]):(, NotImplementedError()) +! vim.List([FailingMappingKey()]):(, NotImplementedError()) +! <<< Finished +! >> ListItem +! l[1000]:(, IndexError('list index out of range',)) +! >> ListAssItem +! ll[1] = 2:(, error('list is locked',)) +! l[1000] = 3:(, IndexError('list index out of range',)) +! >> ListAssSlice +! ll[1:100] = "abc":(, error('list is locked',)) +! >>> Testing *Iter* using l[:] = %s +! l[:] = FailingIter():(, NotImplementedError()) +! l[:] = FailingIterNext():(, NotImplementedError()) +! <<< Finished +! >>> Testing StringToChars using l[:] = [{%s : 1}] +! l[:] = [{1 : 1}]:(, TypeError('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" : 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" : 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[:] = [FailingMapping()]:(, NotImplementedError()) +! l[:] = [FailingMappingKey()]:(, NotImplementedError()) +! <<< Finished +! >> ListConcatInPlace +! >>> Testing *Iter* using l.extend(%s) +! l.extend(FailingIter()):(, NotImplementedError()) +! l.extend(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! >>> Testing StringToChars using l.extend([{%s : 1}]) +! l.extend([{1 : 1}]):(, TypeError('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" : 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" : 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([FailingMapping()]):(, NotImplementedError()) +! l.extend([FailingMappingKey()]):(, NotImplementedError()) +! <<< Finished +! >> ListSetattr +! del l.locked:(, AttributeError('cannot delete vim.List attributes',)) +! l.locked = FailingTrue():(, NotImplementedError()) +! l.xxx = True:(, AttributeError('cannot set 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"):(, ValueError('function does not exist',)) +! >> 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" : 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" : 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(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" : 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" : 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=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 +! vim.current.tabpage.xxx:(, AttributeError('xxx',)) +! > TabList +! >> TabListItem +! vim.tabpages[1000]:(, IndexError('no such tab page',)) +! > Window +! >> WindowAttr +! vim.current.window.xxx:(, AttributeError('xxx',)) +! >> WindowSetattr +! vim.current.window.buffer = 0:(, TypeError('readonly attribute',)) +! vim.current.window.cursor = (10000000000, 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',)) +! vim.current.window.width = "abc":(, TypeError('an integer is required',)) +! vim.current.window.xxxxxx = True:(, AttributeError('xxxxxx',)) +! > WinList +! >> WinListItem +! vim.windows[1000]:(, IndexError('no such window',)) +! > Buffer +! >> StringToLine (indirect) +! vim.current.buffer[0] = "\na":(, error('string cannot contain newlines',)) +! >> SetBufferLine (indirect) +! vim.current.buffer[0] = True:(, TypeError('bad argument type for built-in operation',)) +! >> SetBufferLines (indirect) +! vim.current.buffer[:] = True:(, TypeError('bad argument type for built-in operation',)) +! vim.current.buffer[:] = ["\na", "bc"]:(, error('string cannot contain newlines',)) +! >> InsertBufferLines (indirect) +! vim.current.buffer.append(None):(, TypeError('bad argument type for built-in operation',)) +! vim.current.buffer.append(["\na", "bc"]):(, error('string cannot contain newlines',)) +! vim.current.buffer.append("\nbc"):(, error('string cannot contain newlines',)) +! >> RBItem +! vim.current.buffer[10000000000]:(, IndexError('line number out of range',)) +! >> RBAsItem +! vim.current.buffer[10000000000] = "":(, IndexError('line number out of range',)) +! >> 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('must be string, not int',)) +! vim.current.buffer.mark("abc"):(, ValueError('mark name must be a single character',)) +! vim.current.buffer.mark("!"):(, error('invalid mark name',)) +! >> BufferRange +! vim.current.buffer.range(1, 2, 3):(, TypeError('function takes exactly 2 arguments (3 given)',)) +! > BufMap +! >> BufMapItem +! vim.buffers[None]:(, TypeError('key must be integer',)) +! vim.buffers[100000000]:(, KeyError(100000000,)) +! > Current +! >> CurrentGetattr +! 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',)) +! vim.command("throw 'abc'"):(, error('abc',)) +! Exe("throw 'def'"):(, error('def',)) +! vim.eval("Exe('throw ''ghi''')"):(, error('ghi',)) +! vim.eval("Exe('echoerr ''jkl''')"):(, error('Vim(echoerr):jkl',)) +! vim.eval("Exe('xxx_non_existent_command_xxx')"):(, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) +! vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) +*** ../vim-7.3.1065/src/testdir/test87.in 2013-05-30 13:14:06.000000000 +0200 +--- src/testdir/test87.in 2013-05-30 13:25:22.000000000 +0200 +*************** +*** 746,761 **** + :$put =string(py3eval('dl2')) + :$put =string(py3eval('df(2)')) + :" +! :" Test exceptions +! :fun Exe(e) +! : execute a:e + :endfun + py3 << EOF + def ee(expr, g=globals(), l=locals()): + try: +! exec(expr, g, l) + except Exception as e: +! cb.append(repr((e.__class__, e))) + Exe = vim.bindeval('function("Exe")') + ee('vim.command("throw \'abc\'")') + ee('Exe("throw \'def\'")') +--- 746,1026 ---- + :$put =string(py3eval('dl2')) + :$put =string(py3eval('df(2)')) + :" +! :" Test errors +! :fun F() dict +! :endfun +! :fun D() + :endfun + py3 << EOF + def ee(expr, g=globals(), l=locals()): + try: +! try: +! exec(expr, g, l) +! except Exception as e: +! cb.append(expr + ':' + repr((e.__class__, e))) +! else: +! cb.append(expr + ':NOT FAILED') + except Exception as e: +! cb.append(expr + '::' + repr((e.__class__, e))) +! +! d = vim.Dictionary() +! ned = vim.Dictionary(foo='bar', baz='abc') +! dl = vim.Dictionary(a=1) +! dl.locked = True +! l = vim.List() +! ll = vim.List('abc') +! ll.locked = True +! f = vim.Function('string') +! fd = vim.Function('F') +! fdel = vim.Function('D') +! vim.command('delfunction D') +! +! def subexpr_test(expr, name, subexprs): +! cb.append('>>> Testing %s using %s' % (name, expr)) +! for subexpr in subexprs: +! ee(expr % subexpr) +! cb.append('<<< Finished') +! +! def stringtochars_test(expr): +! return subexpr_test(expr, 'StringToChars', ( +! '1', # Fail type checks +! 'u"\\0"', # Fail PyString_AsStringAndSize(bytes, , NULL) check +! '"\\0"', # Fail PyString_AsStringAndSize(object, , NULL) check +! )) +! +! class Mapping(object): +! def __init__(self, d): +! self.d = d +! +! def __getitem__(self, key): +! return self.d[key] +! +! def keys(self): +! return self.d.keys() +! +! def items(self): +! return self.d.items() +! +! def convertfrompyobject_test(expr, recurse=True): +! # pydict_to_tv +! stringtochars_test(expr % '{%s : 1}') +! if recurse: +! convertfrompyobject_test(expr % '{"abc" : %s}', False) +! # pymap_to_tv +! stringtochars_test(expr % 'Mapping({%s : 1})') +! if recurse: +! convertfrompyobject_test(expr % 'Mapping({"abc" : %s})', False) +! # pyseq_to_tv +! iter_test(expr) +! return subexpr_test(expr, 'ConvertFromPyObject', ( +! 'None', # Not conversible +! '{"": 1}', # Empty key not allowed +! 'FailingMapping()', # +! 'FailingMappingKey()', # +! )) +! +! def convertfrompymapping_test(expr): +! convertfrompyobject_test(expr) +! return subexpr_test(expr, 'ConvertFromPyMapping', ( +! '[]', +! )) +! +! def iter_test(expr): +! return subexpr_test(expr, '*Iter*', ( +! 'FailingIter()', +! 'FailingIterNext()', +! )) +! +! class FailingTrue(object): +! def __bool__(self): +! raise NotImplementedError +! +! class FailingIter(object): +! def __iter__(self): +! raise NotImplementedError +! +! class FailingIterNext(object): +! def __iter__(self): +! return self +! +! def __next__(self): +! raise NotImplementedError +! +! class FailingMappingKey(object): +! def __getitem__(self, item): +! raise NotImplementedError +! +! def keys(self): +! return list("abc") +! +! class FailingMapping(object): +! def __getitem__(self): +! raise NotImplementedError +! +! def keys(self): +! raise NotImplementedError +! +! class FailingList(list): +! def __getitem__(self, idx): +! if i == 2: +! raise NotImplementedError +! else: +! return super(FailingList, self).__getitem__(idx) +! +! cb.append("> Output") +! cb.append(">> OutputSetattr") +! ee('del sys.stdout.softspace') +! ee('sys.stdout.softspace = []') +! ee('sys.stdout.attr = None') +! cb.append(">> OutputWrite") +! ee('sys.stdout.write(None)') +! cb.append(">> OutputWriteLines") +! ee('sys.stdout.writelines(None)') +! ee('sys.stdout.writelines([1])') +! iter_test('sys.stdout.writelines(%s)') +! cb.append("> VimCommand") +! ee('vim.command(1)') +! #! Not checked: vim->python exceptions translating: checked later +! cb.append("> VimToPython") +! #! Not checked: everything: needs errors in internal python functions +! cb.append("> VimEval") +! ee('vim.eval(1)') +! #! Not checked: everything: needs errors in internal python functions +! cb.append("> VimEvalPy") +! ee('vim.bindeval(1)') +! #! Not checked: vim->python exceptions translating: checked later +! cb.append("> VimStrwidth") +! ee('vim.strwidth(1)') +! cb.append("> Dictionary") +! cb.append(">> DictionaryConstructor") +! ee('vim.Dictionary("abc")') +! ##! Not checked: py_dict_alloc failure +! cb.append(">> DictionarySetattr") +! ee('del d.locked') +! ee('d.locked = FailingTrue()') +! ee('vim.vvars.locked = False') +! ee('d.scope = True') +! ee('d.xxx = True') +! cb.append(">> _DictionaryItem") +! ee('d.get("a", 2, 3)') +! stringtochars_test('d.get(%s)') +! ee('d.pop("a")') +! ee('dl.pop("a")') +! cb.append(">> DictionaryIterNext") +! ee('for i in ned: ned["a"] = 1') +! cb.append(">> DictionaryAssItem") +! ee('dl["b"] = 1') +! stringtochars_test('d[%s] = 1') +! convertfrompyobject_test('d["a"] = %s') +! cb.append(">> DictionaryUpdate") +! cb.append(">>> kwargs") +! cb.append(">>> iter") +! ee('d.update(FailingMapping())') +! ee('d.update([FailingIterNext()])') +! iter_test('d.update(%s)') +! convertfrompyobject_test('d.update(%s)') +! stringtochars_test('d.update(((%s, 0),))') +! convertfrompyobject_test('d.update((("a", %s),))') +! cb.append(">> DictionaryPopItem") +! ee('d.popitem(1, 2)') +! cb.append(">> DictionaryHasKey") +! ee('d.has_key()') +! cb.append("> List") +! cb.append(">> ListConstructor") +! ee('vim.List(1, 2)') +! ee('vim.List(a=1)') +! iter_test('vim.List(%s)') +! convertfrompyobject_test('vim.List([%s])') +! cb.append(">> ListItem") +! ee('l[1000]') +! cb.append(">> ListAssItem") +! ee('ll[1] = 2') +! ee('l[1000] = 3') +! cb.append(">> ListAssSlice") +! ee('ll[1:100] = "abc"') +! iter_test('l[:] = %s') +! convertfrompyobject_test('l[:] = [%s]') +! cb.append(">> ListConcatInPlace") +! iter_test('l.extend(%s)') +! convertfrompyobject_test('l.extend([%s])') +! cb.append(">> ListSetattr") +! ee('del l.locked') +! ee('l.locked = FailingTrue()') +! ee('l.xxx = True') +! cb.append("> Function") +! cb.append(">> FunctionConstructor") +! ee('vim.Function("123")') +! ee('vim.Function("xxx_non_existent_function_xxx")') +! ee('vim.Function("xxx#non#existent#function#xxx")') +! cb.append(">> FunctionCall") +! convertfrompyobject_test('f(%s)') +! convertfrompymapping_test('fd(self=%s)') +! cb.append("> TabPage") +! cb.append(">> TabPageAttr") +! ee('vim.current.tabpage.xxx') +! cb.append("> TabList") +! cb.append(">> TabListItem") +! ee('vim.tabpages[1000]') +! cb.append("> Window") +! cb.append(">> WindowAttr") +! ee('vim.current.window.xxx') +! cb.append(">> WindowSetattr") +! ee('vim.current.window.buffer = 0') +! ee('vim.current.window.cursor = (10000000000, 100000000)') +! ee('vim.current.window.cursor = True') +! ee('vim.current.window.height = "abc"') +! ee('vim.current.window.width = "abc"') +! ee('vim.current.window.xxxxxx = True') +! cb.append("> WinList") +! cb.append(">> WinListItem") +! ee('vim.windows[1000]') +! cb.append("> Buffer") +! cb.append(">> StringToLine (indirect)") +! ee('vim.current.buffer[0] = "\\na"') +! cb.append(">> SetBufferLine (indirect)") +! ee('vim.current.buffer[0] = True') +! cb.append(">> SetBufferLines (indirect)") +! ee('vim.current.buffer[:] = True') +! ee('vim.current.buffer[:] = ["\\na", "bc"]') +! cb.append(">> InsertBufferLines (indirect)") +! ee('vim.current.buffer.append(None)') +! ee('vim.current.buffer.append(["\\na", "bc"])') +! ee('vim.current.buffer.append("\\nbc")') +! cb.append(">> RBItem") +! ee('vim.current.buffer[10000000000]') +! cb.append(">> RBAsItem") +! ee('vim.current.buffer[10000000000] = ""') +! cb.append(">> BufferAttr") +! ee('vim.current.buffer.xxx') +! cb.append(">> BufferSetattr") +! ee('vim.current.buffer.name = True') +! ee('vim.current.buffer.xxx = True') +! cb.append(">> BufferMark") +! ee('vim.current.buffer.mark(0)') +! ee('vim.current.buffer.mark("abc")') +! ee('vim.current.buffer.mark("!")') +! cb.append(">> BufferRange") +! ee('vim.current.buffer.range(1, 2, 3)') +! cb.append("> BufMap") +! cb.append(">> BufMapItem") +! ee('vim.buffers[None]') +! ee('vim.buffers[100000000]') +! cb.append("> Current") +! cb.append(">> CurrentGetattr") +! ee('vim.current.xxx') +! cb.append(">> CurrentSetattr") +! ee('vim.current.line = True') +! ee('vim.current.buffer = True') +! ee('vim.current.window = True') +! ee('vim.current.tabpage = True') +! ee('vim.current.xxx = True') +! EOF +! :" +! :" Test exceptions +! :fun Exe(e) +! : execute a:e +! :endfun +! py3 << EOF + Exe = vim.bindeval('function("Exe")') + ee('vim.command("throw \'abc\'")') + ee('Exe("throw \'def\'")') +*** ../vim-7.3.1065/src/testdir/test87.ok 2013-05-30 13:14:06.000000000 +0200 +--- src/testdir/test87.ok 2013-05-30 13:25:22.000000000 +0200 +*************** +*** 418,426 **** + ['a', 'b', 'c'] + [2, 2] + [2, 2] +! (, error('abc',)) +! (, error('def',)) +! (, error('ghi',)) +! (, error('Vim(echoerr):jkl',)) +! (, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) +! (, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) +--- 418,1070 ---- + ['a', 'b', 'c'] + [2, 2] + [2, 2] +! > Output +! >> 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 +! sys.stdout.writelines(None):(, TypeError("'NoneType' object is not iterable",)) +! sys.stdout.writelines([1]):(, TypeError('writelines() requires list of strings',)) +! >>> Testing *Iter* using sys.stdout.writelines(%s) +! sys.stdout.writelines(FailingIter()):(, NotImplementedError()) +! sys.stdout.writelines(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! > VimCommand +! vim.command(1):(, TypeError('must be str, not int',)) +! > VimToPython +! > VimEval +! vim.eval(1):(, TypeError('must be str, not int',)) +! > VimEvalPy +! vim.bindeval(1):(, TypeError('must be str, not int',)) +! > VimStrwidth +! vim.strwidth(1):(, TypeError('must be str, not int',)) +! > 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 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[u"\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"] = {u"\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" : {u"\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({u"\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" : {"": 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 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" : {u"\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({u"\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" : {"": 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"] = FailingMapping():(, NotImplementedError()) +! d["a"] = FailingMappingKey():(, NotImplementedError()) +! <<< Finished +! >> DictionaryUpdate +! >>> kwargs +! >>> iter +! d.update(FailingMapping()):(, NotImplementedError()) +! d.update([FailingIterNext()]):(, NotImplementedError()) +! >>> Testing *Iter* using d.update(%s) +! d.update(FailingIter()):(, NotImplementedError()) +! d.update(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! >>> Testing StringToChars using d.update({%s : 1}) +! d.update({1 : 1}):(, TypeError('object must be string',)) +! d.update({u"\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" : {u"\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({u"\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" : {"": 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 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" : {u"\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({u"\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" : {"": 1}})):(, ValueError('empty keys are not allowed',)) +! d.update(Mapping({"abc" : FailingMapping()})):(, NotImplementedError()) +! d.update(Mapping({"abc" : FailingMappingKey()})):(, NotImplementedError()) +! <<< Finished +! >>> Testing *Iter* using d.update(%s) +! d.update(FailingIter()):(, NotImplementedError()) +! d.update(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! >>> Testing ConvertFromPyObject using d.update(%s) +! d.update(None):(, TypeError("'NoneType' object is not iterable",)) +! d.update({"": 1}):(, ValueError('empty keys are not allowed',)) +! d.update(FailingMapping()):(, NotImplementedError()) +! 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 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", {u"\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" : {u"\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({u"\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" : {"": 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 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" : {u"\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({u"\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" : {"": 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", FailingMapping()),)):(, NotImplementedError()) +! d.update((("a", FailingMappingKey()),)):(, NotImplementedError()) +! <<< Finished +! >> DictionaryPopItem +! d.popitem(1, 2):(, TypeError('function takes exactly 1 argument (2 given)',)) +! >> DictionaryHasKey +! d.has_key():(, TypeError('function takes exactly 1 argument (0 given)',)) +! > List +! >> ListConstructor +! vim.List(1, 2):(, TypeError('function takes at most 1 argument (2 given)',)) +! vim.List(a=1):(, TypeError('list constructor does not accept keyword arguments',)) +! >>> Testing *Iter* using vim.List(%s) +! vim.List(FailingIter()):(, NotImplementedError()) +! vim.List(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! >>> Testing StringToChars using vim.List([{%s : 1}]) +! vim.List([{1 : 1}]):(, TypeError('object must be string',)) +! vim.List([{u"\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" : {u"\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({u"\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" : {"": 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 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" : {u"\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({u"\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" : {"": 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([FailingMapping()]):(, NotImplementedError()) +! vim.List([FailingMappingKey()]):(, NotImplementedError()) +! <<< Finished +! >> ListItem +! l[1000]:(, IndexError('list index out of range',)) +! >> ListAssItem +! ll[1] = 2:(, error('list is locked',)) +! l[1000] = 3:(, IndexError('list index out of range',)) +! >> ListAssSlice +! ll[1:100] = "abc":(, error('list is locked',)) +! >>> Testing *Iter* using l[:] = %s +! l[:] = FailingIter():(, NotImplementedError()) +! l[:] = FailingIterNext()::(, NotImplementedError()) +! <<< Finished +! >>> Testing StringToChars using l[:] = [{%s : 1}] +! l[:] = [{1 : 1}]:(, TypeError('object must be string',)) +! l[:] = [{u"\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" : {u"\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({u"\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" : {"": 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 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" : {u"\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({u"\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" : {"": 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[:] = [FailingMapping()]:(, NotImplementedError()) +! l[:] = [FailingMappingKey()]:(, NotImplementedError()) +! <<< Finished +! >> ListConcatInPlace +! >>> Testing *Iter* using l.extend(%s) +! l.extend(FailingIter()):(, NotImplementedError()) +! l.extend(FailingIterNext()):(, NotImplementedError()) +! <<< Finished +! >>> Testing StringToChars using l.extend([{%s : 1}]) +! l.extend([{1 : 1}]):(, TypeError('object must be string',)) +! l.extend([{u"\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" : {u"\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({u"\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" : {"": 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 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" : {u"\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({u"\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" : {"": 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([FailingMapping()]):(, NotImplementedError()) +! l.extend([FailingMappingKey()]):(, NotImplementedError()) +! <<< Finished +! >> ListSetattr +! del l.locked:(, AttributeError('cannot delete vim.List attributes',)) +! l.locked = FailingTrue():(, NotImplementedError()) +! l.xxx = True:(, AttributeError('cannot set 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"):(, ValueError('function does not exist',)) +! >> FunctionCall +! >>> Testing StringToChars using f({%s : 1}) +! f({1 : 1}):(, TypeError('object must be string',)) +! f({u"\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" : {u"\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({u"\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" : {"": 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 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" : {u"\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({u"\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" : {"": 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(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 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" : {u"\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({u"\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" : {"": 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 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" : {u"\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({u"\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" : {"": 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=FailingMapping()):(, NotImplementedError()) +! fd(self=FailingMappingKey()):(, NotImplementedError()) +! <<< Finished +! >>> Testing ConvertFromPyMapping using fd(self=%s) +! fd(self=[]):(, AttributeError("'list' object has no attribute 'keys'",)) +! <<< Finished +! > TabPage +! >> TabPageAttr +! vim.current.tabpage.xxx:(, AttributeError("'vim.tabpage' object has no attribute 'xxx'",)) +! > TabList +! >> TabListItem +! vim.tabpages[1000]:(, IndexError('no such tab page',)) +! > Window +! >> 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 = (10000000000, 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',)) +! vim.current.window.width = "abc":(, TypeError('an integer is required',)) +! vim.current.window.xxxxxx = True:(, AttributeError('xxxxxx',)) +! > WinList +! >> WinListItem +! vim.windows[1000]:(, IndexError('no such window',)) +! > Buffer +! >> StringToLine (indirect) +! vim.current.buffer[0] = "\na":(, error('string cannot contain newlines',)) +! >> SetBufferLine (indirect) +! vim.current.buffer[0] = True:(, TypeError('bad argument type for built-in operation',)) +! >> SetBufferLines (indirect) +! vim.current.buffer[:] = True:(, TypeError('bad argument type for built-in operation',)) +! vim.current.buffer[:] = ["\na", "bc"]:(, error('string cannot contain newlines',)) +! >> InsertBufferLines (indirect) +! vim.current.buffer.append(None):(, TypeError('bad argument type for built-in operation',)) +! vim.current.buffer.append(["\na", "bc"]):(, error('string cannot contain newlines',)) +! vim.current.buffer.append("\nbc"):(, error('string cannot contain newlines',)) +! >> RBItem +! vim.current.buffer[10000000000]:(, IndexError('line number out of range',)) +! >> RBAsItem +! vim.current.buffer[10000000000] = "":(, IndexError('line number out of range',)) +! >> 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('must be str, not int',)) +! vim.current.buffer.mark("abc"):(, ValueError('mark name must be a single character',)) +! vim.current.buffer.mark("!"):(, error('invalid mark name',)) +! >> BufferRange +! vim.current.buffer.range(1, 2, 3):(, TypeError('function takes exactly 2 arguments (3 given)',)) +! > BufMap +! >> BufMapItem +! vim.buffers[None]:(, TypeError('key must be integer',)) +! vim.buffers[100000000]:(, KeyError(100000000,)) +! > Current +! >> CurrentGetattr +! 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',)) +! vim.command("throw 'abc'"):(, error('abc',)) +! Exe("throw 'def'"):(, error('def',)) +! vim.eval("Exe('throw ''ghi''')"):(, error('ghi',)) +! vim.eval("Exe('echoerr ''jkl''')"):(, error('Vim(echoerr):jkl',)) +! vim.eval("Exe('xxx_non_existent_command_xxx')"):(, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) +! vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) +*** ../vim-7.3.1065/src/version.c 2013-05-30 13:22:07.000000000 +0200 +--- src/version.c 2013-05-30 13:24:41.000000000 +0200 +*************** +*** 730,731 **** +--- 730,733 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1066, + /**/ + +-- +If Pacman had affected us as kids we'd be running around in dark rooms, +munching pills and listening to repetitive music. + -- Marcus Brigstocke + + /// 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 ///