Karsten Hopp 40865e
To: vim_dev@googlegroups.com
Karsten Hopp 40865e
Subject: Patch 7.3.1233
Karsten Hopp 40865e
Fcc: outbox
Karsten Hopp 40865e
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 40865e
Mime-Version: 1.0
Karsten Hopp 40865e
Content-Type: text/plain; charset=UTF-8
Karsten Hopp 40865e
Content-Transfer-Encoding: 8bit
Karsten Hopp 40865e
------------
Karsten Hopp 40865e
Karsten Hopp 40865e
Patch 7.3.1233
Karsten Hopp 40865e
Problem:    Various Python problems.
Karsten Hopp 40865e
Solution:   Fix VimTryEnd. Crash with debug build and PYTHONDUMPREFS=1. Memory
Karsten Hopp 40865e
	    leaks in StringToLine(), BufferMark() and convert_dl. (ZyX)
Karsten Hopp 40865e
Files:	    src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok,
Karsten Hopp 40865e
	    src/testdir/test87.in, src/testdir/test87.ok
Karsten Hopp 40865e
Karsten Hopp 40865e
Karsten Hopp 40865e
*** ../vim-7.3.1232/src/if_py_both.h	2013-06-23 14:30:42.000000000 +0200
Karsten Hopp 40865e
--- src/if_py_both.h	2013-06-23 14:34:17.000000000 +0200
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 544,563 ****
Karsten Hopp 40865e
  VimTryEnd(void)
Karsten Hopp 40865e
  {
Karsten Hopp 40865e
      --trylevel;
Karsten Hopp 40865e
      if (got_int)
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
  	PyErr_SetNone(PyExc_KeyboardInterrupt);
Karsten Hopp 40865e
! 	return 1;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
      else if (!did_throw)
Karsten Hopp 40865e
! 	return 0;
Karsten Hopp 40865e
      else if (PyErr_Occurred())
Karsten Hopp 40865e
! 	return 1;
Karsten Hopp 40865e
      else
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
  	PyErr_SetVim((char *) current_exception->value);
Karsten Hopp 40865e
  	discard_current_exception();
Karsten Hopp 40865e
! 	return 1;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
  }
Karsten Hopp 40865e
  
Karsten Hopp 40865e
--- 544,573 ----
Karsten Hopp 40865e
  VimTryEnd(void)
Karsten Hopp 40865e
  {
Karsten Hopp 40865e
      --trylevel;
Karsten Hopp 40865e
+     /* Without this it stops processing all subsequent VimL commands and 
Karsten Hopp 40865e
+      * generates strange error messages if I e.g. try calling Test() in a cycle */
Karsten Hopp 40865e
+     did_emsg = FALSE;
Karsten Hopp 40865e
+     /* Keyboard interrupt should be preferred over anything else */
Karsten Hopp 40865e
      if (got_int)
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
+ 	did_throw = got_int = FALSE;
Karsten Hopp 40865e
  	PyErr_SetNone(PyExc_KeyboardInterrupt);
Karsten Hopp 40865e
! 	return -1;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
      else if (!did_throw)
Karsten Hopp 40865e
! 	return (PyErr_Occurred() ? -1 : 0);
Karsten Hopp 40865e
!     /* Python exception is preferred over vim one; unlikely to occur though */
Karsten Hopp 40865e
      else if (PyErr_Occurred())
Karsten Hopp 40865e
!     {
Karsten Hopp 40865e
! 	did_throw = FALSE;
Karsten Hopp 40865e
! 	return -1;
Karsten Hopp 40865e
!     }
Karsten Hopp 40865e
!     /* Finally transform VimL exception to python one */
Karsten Hopp 40865e
      else
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
  	PyErr_SetVim((char *) current_exception->value);
Karsten Hopp 40865e
  	discard_current_exception();
Karsten Hopp 40865e
! 	return -1;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
  }
Karsten Hopp 40865e
  
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 2649,2655 ****
Karsten Hopp 40865e
      static PyObject *
Karsten Hopp 40865e
  FunctionRepr(FunctionObject *self)
Karsten Hopp 40865e
  {
Karsten Hopp 40865e
!     return PyString_FromFormat("<vim.Function '%s'>", self->name);
Karsten Hopp 40865e
  }
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  static struct PyMethodDef FunctionMethods[] = {
Karsten Hopp 40865e
--- 2659,2672 ----
Karsten Hopp 40865e
      static PyObject *
Karsten Hopp 40865e
  FunctionRepr(FunctionObject *self)
Karsten Hopp 40865e
  {
Karsten Hopp 40865e
! #ifdef Py_TRACE_REFS
Karsten Hopp 40865e
!     /* For unknown reason self->name may be NULL after calling 
Karsten Hopp 40865e
!      * Finalize */
Karsten Hopp 40865e
!     return PyString_FromFormat("<vim.Function '%s'>",
Karsten Hopp 40865e
! 	    (self->name == NULL ? "<NULL>" : (char *) self->name));
Karsten Hopp 40865e
! #else
Karsten Hopp 40865e
!     return PyString_FromFormat("<vim.Function '%s'>", (char *) self->name);
Karsten Hopp 40865e
! #endif
Karsten Hopp 40865e
  }
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  static struct PyMethodDef FunctionMethods[] = {
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 3534,3539 ****
Karsten Hopp 40865e
--- 3551,3557 ----
Karsten Hopp 40865e
  	else
Karsten Hopp 40865e
  	{
Karsten Hopp 40865e
  	    PyErr_SET_VIM("string cannot contain newlines");
Karsten Hopp 40865e
+ 	    Py_XDECREF(bytes);
Karsten Hopp 40865e
  	    return NULL;
Karsten Hopp 40865e
  	}
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 3545,3550 ****
Karsten Hopp 40865e
--- 3563,3569 ----
Karsten Hopp 40865e
      if (save == NULL)
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
  	PyErr_NoMemory();
Karsten Hopp 40865e
+ 	Py_XDECREF(bytes);
Karsten Hopp 40865e
  	return NULL;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
  
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 4551,4556 ****
Karsten Hopp 40865e
--- 4570,4576 ----
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
  	PyErr_SET_STRING(PyExc_ValueError,
Karsten Hopp 40865e
  		"mark name must be a single character");
Karsten Hopp 40865e
+ 	Py_XDECREF(todecref);
Karsten Hopp 40865e
  	return NULL;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
  
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 5298,5303 ****
Karsten Hopp 40865e
--- 5318,5326 ----
Karsten Hopp 40865e
  	    tv->v_type = VAR_UNKNOWN;
Karsten Hopp 40865e
  	    return -1;
Karsten Hopp 40865e
  	}
Karsten Hopp 40865e
+ 
Karsten Hopp 40865e
+ 	Py_DECREF(capsule);
Karsten Hopp 40865e
+ 
Karsten Hopp 40865e
  	if (py_to_tv(obj, tv, lookup_dict) == -1)
Karsten Hopp 40865e
  	{
Karsten Hopp 40865e
  	    tv->v_type = VAR_UNKNOWN;
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 5378,5390 ****
Karsten Hopp 40865e
  	tv->vval.v_dict = (((DictionaryObject *)(obj))->dict);
Karsten Hopp 40865e
  	++tv->vval.v_dict->dv_refcount;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
!     else if (obj->ob_type == &ListType)
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
  	tv->v_type = VAR_LIST;
Karsten Hopp 40865e
  	tv->vval.v_list = (((ListObject *)(obj))->list);
Karsten Hopp 40865e
  	++tv->vval.v_list->lv_refcount;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
!     else if (obj->ob_type == &FunctionType)
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
  	if (set_string_copy(((FunctionObject *) (obj))->name, tv) == -1)
Karsten Hopp 40865e
  	    return -1;
Karsten Hopp 40865e
--- 5401,5413 ----
Karsten Hopp 40865e
  	tv->vval.v_dict = (((DictionaryObject *)(obj))->dict);
Karsten Hopp 40865e
  	++tv->vval.v_dict->dv_refcount;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
!     else if (PyType_IsSubtype(obj->ob_type, &ListType))
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
  	tv->v_type = VAR_LIST;
Karsten Hopp 40865e
  	tv->vval.v_list = (((ListObject *)(obj))->list);
Karsten Hopp 40865e
  	++tv->vval.v_list->lv_refcount;
Karsten Hopp 40865e
      }
Karsten Hopp 40865e
!     else if (PyType_IsSubtype(obj->ob_type, &FunctionType))
Karsten Hopp 40865e
      {
Karsten Hopp 40865e
  	if (set_string_copy(((FunctionObject *) (obj))->name, tv) == -1)
Karsten Hopp 40865e
  	    return -1;
Karsten Hopp 40865e
*** ../vim-7.3.1232/src/testdir/test86.in	2013-06-12 14:26:20.000000000 +0200
Karsten Hopp 40865e
--- src/testdir/test86.in	2013-06-23 14:34:17.000000000 +0200
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 11,18 ****
Karsten Hopp 40865e
  :set noswapfile
Karsten Hopp 40865e
  :if !has('python') | e! test.ok | wq! test.out | endif
Karsten Hopp 40865e
  :lang C
Karsten Hopp 40865e
- :py import vim
Karsten Hopp 40865e
  :fun Test()
Karsten Hopp 40865e
  :let l = []
Karsten Hopp 40865e
  :py l=vim.bindeval('l')
Karsten Hopp 40865e
  :py f=vim.bindeval('function("strlen")')
Karsten Hopp 40865e
--- 11,18 ----
Karsten Hopp 40865e
  :set noswapfile
Karsten Hopp 40865e
  :if !has('python') | e! test.ok | wq! test.out | endif
Karsten Hopp 40865e
  :lang C
Karsten Hopp 40865e
  :fun Test()
Karsten Hopp 40865e
+ :py import vim
Karsten Hopp 40865e
  :let l = []
Karsten Hopp 40865e
  :py l=vim.bindeval('l')
Karsten Hopp 40865e
  :py f=vim.bindeval('function("strlen")')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 58,63 ****
Karsten Hopp 40865e
--- 58,66 ----
Karsten Hopp 40865e
  :  $put =string(key) . ' : ' . string(Val)
Karsten Hopp 40865e
  :  unlet key Val
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
+ :py del dk
Karsten Hopp 40865e
+ :py del di
Karsten Hopp 40865e
+ :py del dv
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" removing items with del
Karsten Hopp 40865e
  :py del l[2]
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 176,187 ****
Karsten Hopp 40865e
  :unlockvar! l
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Function calls
Karsten Hopp 40865e
! :function New(...)
Karsten Hopp 40865e
! :return ['NewStart']+a:000+['NewEnd']
Karsten Hopp 40865e
! :endfunction
Karsten Hopp 40865e
! :function DictNew(...) dict
Karsten Hopp 40865e
! :return ['DictNewStart']+a:000+['DictNewEnd', self]
Karsten Hopp 40865e
! :endfunction
Karsten Hopp 40865e
  :let l=[function('New'), function('DictNew')]
Karsten Hopp 40865e
  :py l=vim.bindeval('l')
Karsten Hopp 40865e
  :py l.extend(list(l[0](1, 2, 3)))
Karsten Hopp 40865e
--- 179,190 ----
Karsten Hopp 40865e
  :unlockvar! l
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Function calls
Karsten Hopp 40865e
! :fun New(...)
Karsten Hopp 40865e
! :   return ['NewStart']+a:000+['NewEnd']
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
! :fun DictNew(...) dict
Karsten Hopp 40865e
! :   return ['DictNewStart']+a:000+['DictNewEnd', self]
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
  :let l=[function('New'), function('DictNew')]
Karsten Hopp 40865e
  :py l=vim.bindeval('l')
Karsten Hopp 40865e
  :py l.extend(list(l[0](1, 2, 3)))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 211,216 ****
Karsten Hopp 40865e
--- 214,220 ----
Karsten Hopp 40865e
  :   $put ='[0.0, 0.0]'
Karsten Hopp 40865e
  :endif
Karsten Hopp 40865e
  :let messages=[]
Karsten Hopp 40865e
+ :delfunction DictNew
Karsten Hopp 40865e
  py <
Karsten Hopp 40865e
  d=vim.bindeval('{}')
Karsten Hopp 40865e
  m=vim.bindeval('messages')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 220,234 ****
Karsten Hopp 40865e
      except:
Karsten Hopp 40865e
          m.extend([sys.exc_type.__name__])
Karsten Hopp 40865e
  
Karsten Hopp 40865e
! em('d["abc"]')
Karsten Hopp 40865e
! em('d["abc"]="\\0"')
Karsten Hopp 40865e
! em('d["abc"]=vim')
Karsten Hopp 40865e
  em('d[""]=1')
Karsten Hopp 40865e
  em('d["a\\0b"]=1')
Karsten Hopp 40865e
  em('d[u"a\\0b"]=1')
Karsten Hopp 40865e
  
Karsten Hopp 40865e
! em('d.pop("abc")')
Karsten Hopp 40865e
  em('d.popitem()')
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :$put =messages
Karsten Hopp 40865e
  :unlet messages
Karsten Hopp 40865e
--- 224,240 ----
Karsten Hopp 40865e
      except:
Karsten Hopp 40865e
          m.extend([sys.exc_type.__name__])
Karsten Hopp 40865e
  
Karsten Hopp 40865e
! em('d["abc1"]')
Karsten Hopp 40865e
! em('d["abc1"]="\\0"')
Karsten Hopp 40865e
! em('d["abc1"]=vim')
Karsten Hopp 40865e
  em('d[""]=1')
Karsten Hopp 40865e
  em('d["a\\0b"]=1')
Karsten Hopp 40865e
  em('d[u"a\\0b"]=1')
Karsten Hopp 40865e
  
Karsten Hopp 40865e
! em('d.pop("abc1")')
Karsten Hopp 40865e
  em('d.popitem()')
Karsten Hopp 40865e
+ del em
Karsten Hopp 40865e
+ del m
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :$put =messages
Karsten Hopp 40865e
  :unlet messages
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 240,247 ****
Karsten Hopp 40865e
  :    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".pyeval(name.".".v:val)'), ';')
Karsten Hopp 40865e
  :    $put =toput
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
! :silent! let d.abc=1
Karsten Hopp 40865e
! :silent! let dl.abc=1
Karsten Hopp 40865e
  :py d.locked=True
Karsten Hopp 40865e
  :py dl.locked=False
Karsten Hopp 40865e
  :silent! let d.def=1
Karsten Hopp 40865e
--- 246,253 ----
Karsten Hopp 40865e
  :    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".pyeval(name.".".v:val)'), ';')
Karsten Hopp 40865e
  :    $put =toput
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
! :silent! let d.abc2=1
Karsten Hopp 40865e
! :silent! let dl.abc3=1
Karsten Hopp 40865e
  :py d.locked=True
Karsten Hopp 40865e
  :py dl.locked=False
Karsten Hopp 40865e
  :silent! let d.def=1
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 307,318 ****
Karsten Hopp 40865e
--- 313,327 ----
Karsten Hopp 40865e
              time.sleep(0.1)
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  t = T()
Karsten Hopp 40865e
+ del T
Karsten Hopp 40865e
  t.start()
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :sleep 1
Karsten Hopp 40865e
  :py t.running = False
Karsten Hopp 40865e
  :py t.join()
Karsten Hopp 40865e
  :py l[0] = t.t > 8  # check if the background thread is working
Karsten Hopp 40865e
+ :py del time
Karsten Hopp 40865e
+ :py del threading
Karsten Hopp 40865e
  :$put =string(l)
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" settrace
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 333,338 ****
Karsten Hopp 40865e
--- 342,349 ----
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :py sys.settrace(traceit)
Karsten Hopp 40865e
  :py trace_main()
Karsten Hopp 40865e
+ :py del traceit
Karsten Hopp 40865e
+ :py del trace_main
Karsten Hopp 40865e
  :py sys.settrace(None)
Karsten Hopp 40865e
  :$put =string(l)
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 363,369 ****
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Vars
Karsten Hopp 40865e
  :let g:foo = 'bac'
Karsten Hopp 40865e
! :let w:abc = 'def'
Karsten Hopp 40865e
  :let b:baz = 'bar'
Karsten Hopp 40865e
  :let t:bar = 'jkl'
Karsten Hopp 40865e
  :try
Karsten Hopp 40865e
--- 374,380 ----
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Vars
Karsten Hopp 40865e
  :let g:foo = 'bac'
Karsten Hopp 40865e
! :let w:abc3 = 'def'
Karsten Hopp 40865e
  :let b:baz = 'bar'
Karsten Hopp 40865e
  :let t:bar = 'jkl'
Karsten Hopp 40865e
  :try
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 372,378 ****
Karsten Hopp 40865e
  :  put =pyeval('vim.vvars[''exception'']')
Karsten Hopp 40865e
  :endtry
Karsten Hopp 40865e
  :put =pyeval('vim.vars[''foo'']')
Karsten Hopp 40865e
! :put =pyeval('vim.current.window.vars[''abc'']')
Karsten Hopp 40865e
  :put =pyeval('vim.current.buffer.vars[''baz'']')
Karsten Hopp 40865e
  :put =pyeval('vim.current.tabpage.vars[''bar'']')
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
--- 383,389 ----
Karsten Hopp 40865e
  :  put =pyeval('vim.vvars[''exception'']')
Karsten Hopp 40865e
  :endtry
Karsten Hopp 40865e
  :put =pyeval('vim.vars[''foo'']')
Karsten Hopp 40865e
! :put =pyeval('vim.current.window.vars[''abc3'']')
Karsten Hopp 40865e
  :put =pyeval('vim.current.buffer.vars[''baz'']')
Karsten Hopp 40865e
  :put =pyeval('vim.current.tabpage.vars[''bar'']')
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 420,435 ****
Karsten Hopp 40865e
          vim.command('let exc=' + repr(sys.exc_type.__name__))
Karsten Hopp 40865e
          return 0
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
! :function E(s)
Karsten Hopp 40865e
  :   python e(vim.eval('a:s'))
Karsten Hopp 40865e
! :endfunction
Karsten Hopp 40865e
! :function Ev(s)
Karsten Hopp 40865e
  :   let r=pyeval('ev(vim.eval("a:s"))')
Karsten Hopp 40865e
  :   if exists('exc')
Karsten Hopp 40865e
  :       throw exc
Karsten Hopp 40865e
  :   endif
Karsten Hopp 40865e
  :   return r
Karsten Hopp 40865e
! :endfunction
Karsten Hopp 40865e
  :py gopts1=vim.options
Karsten Hopp 40865e
  :py wopts1=vim.windows[2].options
Karsten Hopp 40865e
  :py wopts2=vim.windows[0].options
Karsten Hopp 40865e
--- 431,446 ----
Karsten Hopp 40865e
          vim.command('let exc=' + repr(sys.exc_type.__name__))
Karsten Hopp 40865e
          return 0
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
! :fun E(s)
Karsten Hopp 40865e
  :   python e(vim.eval('a:s'))
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
! :fun Ev(s)
Karsten Hopp 40865e
  :   let r=pyeval('ev(vim.eval("a:s"))')
Karsten Hopp 40865e
  :   if exists('exc')
Karsten Hopp 40865e
  :       throw exc
Karsten Hopp 40865e
  :   endif
Karsten Hopp 40865e
  :   return r
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
  :py gopts1=vim.options
Karsten Hopp 40865e
  :py wopts1=vim.windows[2].options
Karsten Hopp 40865e
  :py wopts2=vim.windows[0].options
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 444,450 ****
Karsten Hopp 40865e
  :let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,    1,      0    ]]
Karsten Hopp 40865e
  :let lst+=[['number',         0,     1,     1,     0,      1,    0,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['numberwidth',    2,     3,     5,     -100,   0,    0,      1    ]]
Karsten Hopp 40865e
! :let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc',  0,    0,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['statusline',     '1',   '2',   '4',   0,      0,    1,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['autoindent',     0,     1,     1,     2,      1,    0,      2    ]]
Karsten Hopp 40865e
  :let lst+=[['shiftwidth',     0,     2,     1,     3,      0,    0,      2    ]]
Karsten Hopp 40865e
--- 455,461 ----
Karsten Hopp 40865e
  :let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,    1,      0    ]]
Karsten Hopp 40865e
  :let lst+=[['number',         0,     1,     1,     0,      1,    0,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['numberwidth',    2,     3,     5,     -100,   0,    0,      1    ]]
Karsten Hopp 40865e
! :let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,    0,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['statusline',     '1',   '2',   '4',   0,      0,    1,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['autoindent',     0,     1,     1,     2,      1,    0,      2    ]]
Karsten Hopp 40865e
  :let lst+=[['shiftwidth',     0,     2,     1,     3,      0,    0,      2    ]]
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 494,503 ****
Karsten Hopp 40865e
--- 505,531 ----
Karsten Hopp 40865e
  :   endfor
Karsten Hopp 40865e
  :   call RecVars(oname)
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
+ :delfunction RecVars
Karsten Hopp 40865e
+ :delfunction E
Karsten Hopp 40865e
+ :delfunction Ev
Karsten Hopp 40865e
+ :py del ev
Karsten Hopp 40865e
+ :py del e
Karsten Hopp 40865e
  :only
Karsten Hopp 40865e
  :for buf in g:bufs[1:]
Karsten Hopp 40865e
  :   execute 'bwipeout!' buf
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
+ :py del gopts1
Karsten Hopp 40865e
+ :py del wopts1
Karsten Hopp 40865e
+ :py del wopts2
Karsten Hopp 40865e
+ :py del wopts3
Karsten Hopp 40865e
+ :py del bopts1
Karsten Hopp 40865e
+ :py del bopts2
Karsten Hopp 40865e
+ :py del bopts3
Karsten Hopp 40865e
+ :py del oval1
Karsten Hopp 40865e
+ :py del oval2
Karsten Hopp 40865e
+ :py del oval3
Karsten Hopp 40865e
+ :py del oname
Karsten Hopp 40865e
+ :py del invval
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test buffer object
Karsten Hopp 40865e
  :vnew
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 517,523 ****
Karsten Hopp 40865e
  # Tests BufferAppend and BufferItem
Karsten Hopp 40865e
  cb.append(b[0])
Karsten Hopp 40865e
  # Tests BufferSlice and BufferAssSlice
Karsten Hopp 40865e
! cb.append('abc') # Will be overwritten
Karsten Hopp 40865e
  cb[-1:] = b[:-2]
Karsten Hopp 40865e
  # Test BufferLength and BufferAssSlice
Karsten Hopp 40865e
  cb.append('def') # Will not be overwritten
Karsten Hopp 40865e
--- 545,551 ----
Karsten Hopp 40865e
  # Tests BufferAppend and BufferItem
Karsten Hopp 40865e
  cb.append(b[0])
Karsten Hopp 40865e
  # Tests BufferSlice and BufferAssSlice
Karsten Hopp 40865e
! cb.append('abc5') # Will be overwritten
Karsten Hopp 40865e
  cb[-1:] = b[:-2]
Karsten Hopp 40865e
  # Test BufferLength and BufferAssSlice
Karsten Hopp 40865e
  cb.append('def') # Will not be overwritten
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 541,553 ****
Karsten Hopp 40865e
  cb.append(b.name[-11:].replace(os.path.sep, '/'))
Karsten Hopp 40865e
  cb.name = old_name
Karsten Hopp 40865e
  cb.append(cb.name[-17:].replace(os.path.sep, '/'))
Karsten Hopp 40865e
  # Test CheckBuffer
Karsten Hopp 40865e
  for _b in vim.buffers:
Karsten Hopp 40865e
      if _b is not cb:
Karsten Hopp 40865e
          vim.command('bwipeout! ' + str(_b.number))
Karsten Hopp 40865e
  del _b
Karsten Hopp 40865e
  cb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid)))
Karsten Hopp 40865e
! for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc")', 'b.name = "!"'):
Karsten Hopp 40865e
      try:
Karsten Hopp 40865e
          exec(expr)
Karsten Hopp 40865e
      except vim.error:
Karsten Hopp 40865e
--- 569,582 ----
Karsten Hopp 40865e
  cb.append(b.name[-11:].replace(os.path.sep, '/'))
Karsten Hopp 40865e
  cb.name = old_name
Karsten Hopp 40865e
  cb.append(cb.name[-17:].replace(os.path.sep, '/'))
Karsten Hopp 40865e
+ del old_name
Karsten Hopp 40865e
  # Test CheckBuffer
Karsten Hopp 40865e
  for _b in vim.buffers:
Karsten Hopp 40865e
      if _b is not cb:
Karsten Hopp 40865e
          vim.command('bwipeout! ' + str(_b.number))
Karsten Hopp 40865e
  del _b
Karsten Hopp 40865e
  cb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid)))
Karsten Hopp 40865e
! for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")', 'b.name = "!"'):
Karsten Hopp 40865e
      try:
Karsten Hopp 40865e
          exec(expr)
Karsten Hopp 40865e
      except vim.error:
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 557,562 ****
Karsten Hopp 40865e
--- 586,592 ----
Karsten Hopp 40865e
          # Should not happen in any case
Karsten Hopp 40865e
          cb.append('No exception for ' + expr)
Karsten Hopp 40865e
  vim.command('cd .')
Karsten Hopp 40865e
+ del b
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :augroup BUFS
Karsten Hopp 40865e
  :   autocmd!
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 598,603 ****
Karsten Hopp 40865e
--- 628,634 ----
Karsten Hopp 40865e
      # Check indexing: vim.buffers[number].number == number
Karsten Hopp 40865e
      cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) + '=' + repr(b))
Karsten Hopp 40865e
      prevnum = b.number
Karsten Hopp 40865e
+ del prevnum
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  cb.append(str(len(vim.buffers)))
Karsten Hopp 40865e
  
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 621,626 ****
Karsten Hopp 40865e
--- 652,659 ----
Karsten Hopp 40865e
      next(i4)
Karsten Hopp 40865e
  except StopIteration:
Karsten Hopp 40865e
      cb.append('StopIteration')
Karsten Hopp 40865e
+ del i4
Karsten Hopp 40865e
+ del bnums
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test vim.{tabpage,window}list and vim.{tabpage,window} objects
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 663,669 ****
Karsten Hopp 40865e
--- 696,706 ----
Karsten Hopp 40865e
                      raise ValueError
Karsten Hopp 40865e
              except Exception:
Karsten Hopp 40865e
                  cb.append('!!!!!! Error while getting attribute ' + attr + ': ' + sys.exc_type.__name__)
Karsten Hopp 40865e
+         del aval
Karsten Hopp 40865e
+         del attr
Karsten Hopp 40865e
          w.cursor = (len(w.buffer), 0)
Karsten Hopp 40865e
+ del W
Karsten Hopp 40865e
+ del Cursor
Karsten Hopp 40865e
  cb.append('Number of windows in current tab page: ' + str(len(vim.windows)))
Karsten Hopp 40865e
  if list(vim.windows) != list(vim.current.tabpage.windows):
Karsten Hopp 40865e
      cb.append('!!!!!! Windows differ')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 676,681 ****
Karsten Hopp 40865e
--- 713,719 ----
Karsten Hopp 40865e
  cb.append('Current tab page: ' + repr(vim.current.tabpage))
Karsten Hopp 40865e
  cb.append('Current window: ' + repr(vim.current.window) + ': ' + H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))
Karsten Hopp 40865e
  cb.append('Current buffer: ' + repr(vim.current.buffer) + ': ' + H(vim.current.buffer) + ' is ' + H(vim.current.window.buffer)+ ' is ' + H(vim.current.tabpage.window.buffer))
Karsten Hopp 40865e
+ del H
Karsten Hopp 40865e
  # Assigning: fails
Karsten Hopp 40865e
  try:
Karsten Hopp 40865e
      vim.current.window = vim.tabpages[0].window
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 687,692 ****
Karsten Hopp 40865e
--- 725,731 ----
Karsten Hopp 40865e
          setattr(vim.current, attr, None)
Karsten Hopp 40865e
      except TypeError:
Karsten Hopp 40865e
          cb.append('Type error at assigning None to vim.current.' + attr)
Karsten Hopp 40865e
+ del attr
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  # Assigning: success
Karsten Hopp 40865e
  vim.current.tabpage = vim.tabpages[-2]
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 702,709 ****
Karsten Hopp 40865e
--- 741,753 ----
Karsten Hopp 40865e
  for b in vim.buffers:
Karsten Hopp 40865e
      if b is not cb:
Karsten Hopp 40865e
          vim.command('bwipeout! ' + str(b.number))
Karsten Hopp 40865e
+ del b
Karsten Hopp 40865e
  cb.append('w.valid: ' + repr([w.valid for w in ws]))
Karsten Hopp 40865e
  cb.append('t.valid: ' + repr([t.valid for t in ts]))
Karsten Hopp 40865e
+ del w
Karsten Hopp 40865e
+ del t
Karsten Hopp 40865e
+ del ts
Karsten Hopp 40865e
+ del ws
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :tabonly!
Karsten Hopp 40865e
  :only!
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 722,727 ****
Karsten Hopp 40865e
--- 766,773 ----
Karsten Hopp 40865e
      ('vim.current.tabpage',              'TabPage'),
Karsten Hopp 40865e
  ):
Karsten Hopp 40865e
      cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is getattr(vim, attr)))
Karsten Hopp 40865e
+ del expr
Karsten Hopp 40865e
+ del attr
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test __dir__() method
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 747,761 ****
Karsten Hopp 40865e
  :$put =string(pyeval('vim.Dictionary(a=1)'))
Karsten Hopp 40865e
  :$put =string(pyeval('vim.Dictionary(((''a'', 1),))'))
Karsten Hopp 40865e
  :$put =string(pyeval('vim.List()'))
Karsten Hopp 40865e
! :$put =string(pyeval('vim.List(iter(''abc''))'))
Karsten Hopp 40865e
  :$put =string(pyeval('vim.Function(''tr'')'))
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test stdout/stderr
Karsten Hopp 40865e
  :redir => messages
Karsten Hopp 40865e
! :py sys.stdout.write('abc') ; sys.stdout.write('def')
Karsten Hopp 40865e
! :py sys.stderr.write('abc') ; sys.stderr.write('def')
Karsten Hopp 40865e
! :py sys.stdout.writelines(iter('abc'))
Karsten Hopp 40865e
! :py sys.stderr.writelines(iter('abc'))
Karsten Hopp 40865e
  :redir END
Karsten Hopp 40865e
  :$put =string(substitute(messages, '\d\+', '', 'g'))
Karsten Hopp 40865e
  :" Test subclassing
Karsten Hopp 40865e
--- 793,807 ----
Karsten Hopp 40865e
  :$put =string(pyeval('vim.Dictionary(a=1)'))
Karsten Hopp 40865e
  :$put =string(pyeval('vim.Dictionary(((''a'', 1),))'))
Karsten Hopp 40865e
  :$put =string(pyeval('vim.List()'))
Karsten Hopp 40865e
! :$put =string(pyeval('vim.List(iter(''abc7''))'))
Karsten Hopp 40865e
  :$put =string(pyeval('vim.Function(''tr'')'))
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test stdout/stderr
Karsten Hopp 40865e
  :redir => messages
Karsten Hopp 40865e
! :py sys.stdout.write('abc8') ; sys.stdout.write('def')
Karsten Hopp 40865e
! :py sys.stderr.write('abc9') ; sys.stderr.write('def')
Karsten Hopp 40865e
! :py sys.stdout.writelines(iter('abcA'))
Karsten Hopp 40865e
! :py sys.stderr.writelines(iter('abcB'))
Karsten Hopp 40865e
  :redir END
Karsten Hopp 40865e
  :$put =string(substitute(messages, '\d\+', '', 'g'))
Karsten Hopp 40865e
  :" Test subclassing
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 776,782 ****
Karsten Hopp 40865e
          return [super(DupList, self).__getitem__(idx)] * 2
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  dl = DupList()
Karsten Hopp 40865e
! dl2 = DupList(iter('abc'))
Karsten Hopp 40865e
  dl.extend(dl2[0])
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  class DupFun(vim.Function):
Karsten Hopp 40865e
--- 822,828 ----
Karsten Hopp 40865e
          return [super(DupList, self).__getitem__(idx)] * 2
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  dl = DupList()
Karsten Hopp 40865e
! dl2 = DupList(iter('abcC'))
Karsten Hopp 40865e
  dl.extend(dl2[0])
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  class DupFun(vim.Function):
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 789,794 ****
Karsten Hopp 40865e
--- 835,853 ----
Karsten Hopp 40865e
  :$put =string(pyeval('dl'))
Karsten Hopp 40865e
  :$put =string(pyeval('dl2'))
Karsten Hopp 40865e
  :$put =string(pyeval('df(2)'))
Karsten Hopp 40865e
+ :$put =string(pyeval('dl') is# pyeval('dl'))
Karsten Hopp 40865e
+ :$put =string(pyeval('dd') is# pyeval('dd'))
Karsten Hopp 40865e
+ :$put =string(pyeval('df'))
Karsten Hopp 40865e
+ :delfunction Put
Karsten Hopp 40865e
+ py << EOF
Karsten Hopp 40865e
+ del DupDict
Karsten Hopp 40865e
+ del DupList
Karsten Hopp 40865e
+ del DupFun
Karsten Hopp 40865e
+ del dd
Karsten Hopp 40865e
+ del dl
Karsten Hopp 40865e
+ del dl2
Karsten Hopp 40865e
+ del df
Karsten Hopp 40865e
+ EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test chdir
Karsten Hopp 40865e
  py << EOF
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 802,807 ****
Karsten Hopp 40865e
--- 861,867 ----
Karsten Hopp 40865e
  os.chdir('testdir')
Karsten Hopp 40865e
  cb.append(fnamemodify('.', ':p:h:t'))
Karsten Hopp 40865e
  cb.append(vim.eval('@%'))
Karsten Hopp 40865e
+ del fnamemodify
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test errors
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 828,838 ****
Karsten Hopp 40865e
      else:
Karsten Hopp 40865e
          cb.append(expr + ':NOT FAILED')
Karsten Hopp 40865e
  d = vim.Dictionary()
Karsten Hopp 40865e
! ned = vim.Dictionary(foo='bar', baz='abc')
Karsten Hopp 40865e
  dl = vim.Dictionary(a=1)
Karsten Hopp 40865e
  dl.locked = True
Karsten Hopp 40865e
  l = vim.List()
Karsten Hopp 40865e
! ll = vim.List('abc')
Karsten Hopp 40865e
  ll.locked = True
Karsten Hopp 40865e
  f = vim.Function('string')
Karsten Hopp 40865e
  fd = vim.Function('F')
Karsten Hopp 40865e
--- 888,898 ----
Karsten Hopp 40865e
      else:
Karsten Hopp 40865e
          cb.append(expr + ':NOT FAILED')
Karsten Hopp 40865e
  d = vim.Dictionary()
Karsten Hopp 40865e
! ned = vim.Dictionary(foo='bar', baz='abcD')
Karsten Hopp 40865e
  dl = vim.Dictionary(a=1)
Karsten Hopp 40865e
  dl.locked = True
Karsten Hopp 40865e
  l = vim.List()
Karsten Hopp 40865e
! ll = vim.List('abcE')
Karsten Hopp 40865e
  ll.locked = True
Karsten Hopp 40865e
  f = vim.Function('string')
Karsten Hopp 40865e
  fd = vim.Function('F')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 869,879 ****
Karsten Hopp 40865e
      # pydict_to_tv
Karsten Hopp 40865e
      stringtochars_test(expr % '{%s : 1}')
Karsten Hopp 40865e
      if recurse:
Karsten Hopp 40865e
!         convertfrompyobject_test(expr % '{"abc" : %s}', False)
Karsten Hopp 40865e
      # pymap_to_tv
Karsten Hopp 40865e
      stringtochars_test(expr % 'Mapping({%s : 1})')
Karsten Hopp 40865e
      if recurse:
Karsten Hopp 40865e
!         convertfrompyobject_test(expr % 'Mapping({"abc" : %s})', False)
Karsten Hopp 40865e
      # pyseq_to_tv
Karsten Hopp 40865e
      iter_test(expr)
Karsten Hopp 40865e
      return subexpr_test(expr, 'ConvertFromPyObject', (
Karsten Hopp 40865e
--- 929,939 ----
Karsten Hopp 40865e
      # pydict_to_tv
Karsten Hopp 40865e
      stringtochars_test(expr % '{%s : 1}')
Karsten Hopp 40865e
      if recurse:
Karsten Hopp 40865e
!         convertfrompyobject_test(expr % '{"abcF" : %s}', False)
Karsten Hopp 40865e
      # pymap_to_tv
Karsten Hopp 40865e
      stringtochars_test(expr % 'Mapping({%s : 1})')
Karsten Hopp 40865e
      if recurse:
Karsten Hopp 40865e
!         convertfrompyobject_test(expr % 'Mapping({"abcG" : %s})', False)
Karsten Hopp 40865e
      # pyseq_to_tv
Karsten Hopp 40865e
      iter_test(expr)
Karsten Hopp 40865e
      return subexpr_test(expr, 'ConvertFromPyObject', (
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 916,922 ****
Karsten Hopp 40865e
          raise NotImplementedError
Karsten Hopp 40865e
  
Karsten Hopp 40865e
      def keys(self):
Karsten Hopp 40865e
!         return list("abc")
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  class FailingMapping(object):
Karsten Hopp 40865e
      def __getitem__(self):
Karsten Hopp 40865e
--- 976,982 ----
Karsten Hopp 40865e
          raise NotImplementedError
Karsten Hopp 40865e
  
Karsten Hopp 40865e
      def keys(self):
Karsten Hopp 40865e
!         return list("abcH")
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  class FailingMapping(object):
Karsten Hopp 40865e
      def __getitem__(self):
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 958,964 ****
Karsten Hopp 40865e
  ee('vim.strwidth(1)')
Karsten Hopp 40865e
  cb.append("> Dictionary")
Karsten Hopp 40865e
  cb.append(">> DictionaryConstructor")
Karsten Hopp 40865e
! ee('vim.Dictionary("abc")')
Karsten Hopp 40865e
  ##! Not checked: py_dict_alloc failure
Karsten Hopp 40865e
  cb.append(">> DictionarySetattr")
Karsten Hopp 40865e
  ee('del d.locked')
Karsten Hopp 40865e
--- 1018,1024 ----
Karsten Hopp 40865e
  ee('vim.strwidth(1)')
Karsten Hopp 40865e
  cb.append("> Dictionary")
Karsten Hopp 40865e
  cb.append(">> DictionaryConstructor")
Karsten Hopp 40865e
! ee('vim.Dictionary("abcI")')
Karsten Hopp 40865e
  ##! Not checked: py_dict_alloc failure
Karsten Hopp 40865e
  cb.append(">> DictionarySetattr")
Karsten Hopp 40865e
  ee('del d.locked')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 973,978 ****
Karsten Hopp 40865e
--- 1033,1039 ----
Karsten Hopp 40865e
  ee('dl.pop("a")')
Karsten Hopp 40865e
  cb.append(">> DictionaryIterNext")
Karsten Hopp 40865e
  ee('for i in ned: ned["a"] = 1')
Karsten Hopp 40865e
+ del i
Karsten Hopp 40865e
  cb.append(">> DictionaryAssItem")
Karsten Hopp 40865e
  ee('dl["b"] = 1')
Karsten Hopp 40865e
  stringtochars_test('d[%s] = 1')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1002,1008 ****
Karsten Hopp 40865e
  ee('ll[1] = 2')
Karsten Hopp 40865e
  ee('l[1000] = 3')
Karsten Hopp 40865e
  cb.append(">> ListAssSlice")
Karsten Hopp 40865e
! ee('ll[1:100] = "abc"')
Karsten Hopp 40865e
  #iter_test('l[:] = %s')
Karsten Hopp 40865e
  convertfrompyobject_test('l[:] = [%s]')
Karsten Hopp 40865e
  cb.append(">> ListConcatInPlace")
Karsten Hopp 40865e
--- 1063,1069 ----
Karsten Hopp 40865e
  ee('ll[1] = 2')
Karsten Hopp 40865e
  ee('l[1000] = 3')
Karsten Hopp 40865e
  cb.append(">> ListAssSlice")
Karsten Hopp 40865e
! ee('ll[1:100] = "abcJ"')
Karsten Hopp 40865e
  #iter_test('l[:] = %s')
Karsten Hopp 40865e
  convertfrompyobject_test('l[:] = [%s]')
Karsten Hopp 40865e
  cb.append(">> ListConcatInPlace")
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1033,1040 ****
Karsten Hopp 40865e
  ee('vim.current.window.buffer = 0')
Karsten Hopp 40865e
  ee('vim.current.window.cursor = (100000000, 100000000)')
Karsten Hopp 40865e
  ee('vim.current.window.cursor = True')
Karsten Hopp 40865e
! ee('vim.current.window.height = "abc"')
Karsten Hopp 40865e
! ee('vim.current.window.width  = "abc"')
Karsten Hopp 40865e
  ee('vim.current.window.xxxxxx = True')
Karsten Hopp 40865e
  cb.append("> WinList")
Karsten Hopp 40865e
  cb.append(">> WinListItem")
Karsten Hopp 40865e
--- 1094,1101 ----
Karsten Hopp 40865e
  ee('vim.current.window.buffer = 0')
Karsten Hopp 40865e
  ee('vim.current.window.cursor = (100000000, 100000000)')
Karsten Hopp 40865e
  ee('vim.current.window.cursor = True')
Karsten Hopp 40865e
! ee('vim.current.window.height = "abcK"')
Karsten Hopp 40865e
! ee('vim.current.window.width  = "abcL"')
Karsten Hopp 40865e
  ee('vim.current.window.xxxxxx = True')
Karsten Hopp 40865e
  cb.append("> WinList")
Karsten Hopp 40865e
  cb.append(">> WinListItem")
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1044,1050 ****
Karsten Hopp 40865e
  ee('vim.current.buffer[0] = "\\na"')
Karsten Hopp 40865e
  cb.append(">> SetBufferLine (indirect)")
Karsten Hopp 40865e
  ee('vim.current.buffer[0] = True')
Karsten Hopp 40865e
! cb.append(">> SetBufferLines (indirect)")
Karsten Hopp 40865e
  ee('vim.current.buffer[:] = True')
Karsten Hopp 40865e
  ee('vim.current.buffer[:] = ["\\na", "bc"]')
Karsten Hopp 40865e
  cb.append(">> InsertBufferLines (indirect)")
Karsten Hopp 40865e
--- 1105,1111 ----
Karsten Hopp 40865e
  ee('vim.current.buffer[0] = "\\na"')
Karsten Hopp 40865e
  cb.append(">> SetBufferLine (indirect)")
Karsten Hopp 40865e
  ee('vim.current.buffer[0] = True')
Karsten Hopp 40865e
! cb.append(">> SetBufferLineList (indirect)")
Karsten Hopp 40865e
  ee('vim.current.buffer[:] = True')
Karsten Hopp 40865e
  ee('vim.current.buffer[:] = ["\\na", "bc"]')
Karsten Hopp 40865e
  cb.append(">> InsertBufferLines (indirect)")
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1062,1068 ****
Karsten Hopp 40865e
  ee('vim.current.buffer.xxx = True')
Karsten Hopp 40865e
  cb.append(">> BufferMark")
Karsten Hopp 40865e
  ee('vim.current.buffer.mark(0)')
Karsten Hopp 40865e
! ee('vim.current.buffer.mark("abc")')
Karsten Hopp 40865e
  ee('vim.current.buffer.mark("!")')
Karsten Hopp 40865e
  cb.append(">> BufferRange")
Karsten Hopp 40865e
  ee('vim.current.buffer.range(1, 2, 3)')
Karsten Hopp 40865e
--- 1123,1129 ----
Karsten Hopp 40865e
  ee('vim.current.buffer.xxx = True')
Karsten Hopp 40865e
  cb.append(">> BufferMark")
Karsten Hopp 40865e
  ee('vim.current.buffer.mark(0)')
Karsten Hopp 40865e
! ee('vim.current.buffer.mark("abcM")')
Karsten Hopp 40865e
  ee('vim.current.buffer.mark("!")')
Karsten Hopp 40865e
  cb.append(">> BufferRange")
Karsten Hopp 40865e
  ee('vim.current.buffer.range(1, 2, 3)')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1079,1085 ****
Karsten Hopp 40865e
--- 1140,1167 ----
Karsten Hopp 40865e
  ee('vim.current.window = True')
Karsten Hopp 40865e
  ee('vim.current.tabpage = True')
Karsten Hopp 40865e
  ee('vim.current.xxx = True')
Karsten Hopp 40865e
+ del d
Karsten Hopp 40865e
+ del ned
Karsten Hopp 40865e
+ del dl
Karsten Hopp 40865e
+ del l
Karsten Hopp 40865e
+ del ll
Karsten Hopp 40865e
+ del f
Karsten Hopp 40865e
+ del fd
Karsten Hopp 40865e
+ del fdel
Karsten Hopp 40865e
+ del subexpr_test
Karsten Hopp 40865e
+ del stringtochars_test
Karsten Hopp 40865e
+ del Mapping
Karsten Hopp 40865e
+ del convertfrompyobject_test
Karsten Hopp 40865e
+ del convertfrompymapping_test
Karsten Hopp 40865e
+ del iter_test
Karsten Hopp 40865e
+ del FailingTrue
Karsten Hopp 40865e
+ del FailingIter
Karsten Hopp 40865e
+ del FailingIterNext
Karsten Hopp 40865e
+ del FailingMapping
Karsten Hopp 40865e
+ del FailingMappingKey
Karsten Hopp 40865e
+ del FailingList
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
+ :delfunction F
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test import
Karsten Hopp 40865e
  py << EOF
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1093,1098 ****
Karsten Hopp 40865e
--- 1175,1184 ----
Karsten Hopp 40865e
  cb.append(before.dir)
Karsten Hopp 40865e
  import after
Karsten Hopp 40865e
  cb.append(after.dir)
Karsten Hopp 40865e
+ del before
Karsten Hopp 40865e
+ del after
Karsten Hopp 40865e
+ del d
Karsten Hopp 40865e
+ del ddir
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test exceptions
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1101,1118 ****
Karsten Hopp 40865e
  :endfun
Karsten Hopp 40865e
  py << EOF
Karsten Hopp 40865e
  Exe = vim.bindeval('function("Exe")')
Karsten Hopp 40865e
! ee('vim.command("throw \'abc\'")')
Karsten Hopp 40865e
  ee('Exe("throw \'def\'")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
Karsten Hopp 40865e
  ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :endfun
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
! :call Test()
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
! :delfunc Test
Karsten Hopp 40865e
  :call garbagecollect(1)
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :/^start:/,$wq! test.out
Karsten Hopp 40865e
--- 1187,1234 ----
Karsten Hopp 40865e
  :endfun
Karsten Hopp 40865e
  py << EOF
Karsten Hopp 40865e
  Exe = vim.bindeval('function("Exe")')
Karsten Hopp 40865e
! ee('vim.command("throw \'abcN\'")')
Karsten Hopp 40865e
  ee('Exe("throw \'def\'")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
Karsten Hopp 40865e
  ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
Karsten Hopp 40865e
+ del Exe
Karsten Hopp 40865e
+ EOF
Karsten Hopp 40865e
+ :delfunction Exe
Karsten Hopp 40865e
+ :"
Karsten Hopp 40865e
+ :" Cleanup
Karsten Hopp 40865e
+ py << EOF
Karsten Hopp 40865e
+ del cb
Karsten Hopp 40865e
+ del ee
Karsten Hopp 40865e
+ del sys
Karsten Hopp 40865e
+ del os
Karsten Hopp 40865e
+ del vim
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :endfun
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
! :fun RunTest()
Karsten Hopp 40865e
! :let checkrefs = !empty($PYTHONDUMPREFS)
Karsten Hopp 40865e
! :let start = getline(1, '$')
Karsten Hopp 40865e
! :for i in range(checkrefs ? 10 : 1)
Karsten Hopp 40865e
! :   if i != 0
Karsten Hopp 40865e
! :       %d _
Karsten Hopp 40865e
! :       call setline(1, start)
Karsten Hopp 40865e
! :   endif
Karsten Hopp 40865e
! :   call Test()
Karsten Hopp 40865e
! :   if i == 0
Karsten Hopp 40865e
! :       let result = getline(1, '$')
Karsten Hopp 40865e
! :   endif
Karsten Hopp 40865e
! :endfor
Karsten Hopp 40865e
! :if checkrefs
Karsten Hopp 40865e
! :   %d _
Karsten Hopp 40865e
! :   call setline(1, result)
Karsten Hopp 40865e
! :endif
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
! :call RunTest()
Karsten Hopp 40865e
! :delfunction RunTest
Karsten Hopp 40865e
! :delfunction Test
Karsten Hopp 40865e
  :call garbagecollect(1)
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :/^start:/,$wq! test.out
Karsten Hopp 40865e
*** ../vim-7.3.1232/src/testdir/test86.ok	2013-06-23 14:16:53.000000000 +0200
Karsten Hopp 40865e
--- src/testdir/test86.ok	2013-06-23 14:34:17.000000000 +0200
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 68,74 ****
Karsten Hopp 40865e
  dl : locked:1;scope:0
Karsten Hopp 40865e
  v: : locked:2;scope:1
Karsten Hopp 40865e
  g: : locked:0;scope:2
Karsten Hopp 40865e
! d:{'abc': 1}
Karsten Hopp 40865e
  dl:{'def': 1}
Karsten Hopp 40865e
  l : locked:0
Karsten Hopp 40865e
  ll : locked:1
Karsten Hopp 40865e
--- 68,74 ----
Karsten Hopp 40865e
  dl : locked:1;scope:0
Karsten Hopp 40865e
  v: : locked:2;scope:1
Karsten Hopp 40865e
  g: : locked:0;scope:2
Karsten Hopp 40865e
! d:{'abc2': 1}
Karsten Hopp 40865e
  dl:{'def': 1}
Karsten Hopp 40865e
  l : locked:0
Karsten Hopp 40865e
  ll : locked:1
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 202,213 ****
Karsten Hopp 40865e
    B: 1:3 2:5 3:2 4:8
Karsten Hopp 40865e
  >>> colorcolumn
Karsten Hopp 40865e
    p/gopts1! KeyError
Karsten Hopp 40865e
!   inv: 'abc'! KeyError
Karsten Hopp 40865e
    gopts1! KeyError
Karsten Hopp 40865e
    p/wopts1: ''
Karsten Hopp 40865e
!   inv: 'abc'! error
Karsten Hopp 40865e
    p/bopts1! KeyError
Karsten Hopp 40865e
!   inv: 'abc'! KeyError
Karsten Hopp 40865e
    bopts1! KeyError
Karsten Hopp 40865e
    bopts2! KeyError
Karsten Hopp 40865e
    bopts3! KeyError
Karsten Hopp 40865e
--- 202,213 ----
Karsten Hopp 40865e
    B: 1:3 2:5 3:2 4:8
Karsten Hopp 40865e
  >>> colorcolumn
Karsten Hopp 40865e
    p/gopts1! KeyError
Karsten Hopp 40865e
!   inv: 'abc4'! KeyError
Karsten Hopp 40865e
    gopts1! KeyError
Karsten Hopp 40865e
    p/wopts1: ''
Karsten Hopp 40865e
!   inv: 'abc4'! error
Karsten Hopp 40865e
    p/bopts1! KeyError
Karsten Hopp 40865e
!   inv: 'abc4'! KeyError
Karsten Hopp 40865e
    bopts1! KeyError
Karsten Hopp 40865e
    bopts2! KeyError
Karsten Hopp 40865e
    bopts3! KeyError
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 415,434 ****
Karsten Hopp 40865e
  {'a': 1}
Karsten Hopp 40865e
  {'a': 1}
Karsten Hopp 40865e
  []
Karsten Hopp 40865e
! ['a', 'b', 'c']
Karsten Hopp 40865e
  function('tr')
Karsten Hopp 40865e
  '
Karsten Hopp 40865e
  abcdef
Karsten Hopp 40865e
  line  :
Karsten Hopp 40865e
  abcdef
Karsten Hopp 40865e
! abc
Karsten Hopp 40865e
  line  :
Karsten Hopp 40865e
! abc'
Karsten Hopp 40865e
  ['a', 'dup_a']
Karsten Hopp 40865e
  ['a', 'a']
Karsten Hopp 40865e
! ['a', 'b', 'c']
Karsten Hopp 40865e
  [2, 2]
Karsten Hopp 40865e
  [2, 2]
Karsten Hopp 40865e
  testdir
Karsten Hopp 40865e
  test86.in
Karsten Hopp 40865e
  src
Karsten Hopp 40865e
--- 415,437 ----
Karsten Hopp 40865e
  {'a': 1}
Karsten Hopp 40865e
  {'a': 1}
Karsten Hopp 40865e
  []
Karsten Hopp 40865e
! ['a', 'b', 'c', '7']
Karsten Hopp 40865e
  function('tr')
Karsten Hopp 40865e
  '
Karsten Hopp 40865e
  abcdef
Karsten Hopp 40865e
  line  :
Karsten Hopp 40865e
  abcdef
Karsten Hopp 40865e
! abcA
Karsten Hopp 40865e
  line  :
Karsten Hopp 40865e
! abcB'
Karsten Hopp 40865e
  ['a', 'dup_a']
Karsten Hopp 40865e
  ['a', 'a']
Karsten Hopp 40865e
! ['a', 'b', 'c', 'C']
Karsten Hopp 40865e
  [2, 2]
Karsten Hopp 40865e
  [2, 2]
Karsten Hopp 40865e
+ 1
Karsten Hopp 40865e
+ 1
Karsten Hopp 40865e
+ function('Put')
Karsten Hopp 40865e
  testdir
Karsten Hopp 40865e
  test86.in
Karsten Hopp 40865e
  src
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 456,462 ****
Karsten Hopp 40865e
  vim.strwidth(1):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  > Dictionary
Karsten Hopp 40865e
  >> DictionaryConstructor
Karsten Hopp 40865e
! vim.Dictionary("abc"):ValueError:('expected sequence element of size 2, but got sequence of size 1',)
Karsten Hopp 40865e
  >> DictionarySetattr
Karsten Hopp 40865e
  del d.locked:AttributeError:('cannot delete vim.Dictionary attributes',)
Karsten Hopp 40865e
  d.locked = FailingTrue():NotImplementedError:()
Karsten Hopp 40865e
--- 459,465 ----
Karsten Hopp 40865e
  vim.strwidth(1):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  > Dictionary
Karsten Hopp 40865e
  >> DictionaryConstructor
Karsten Hopp 40865e
! vim.Dictionary("abcI"):ValueError:('expected sequence element of size 2, but got sequence of size 1',)
Karsten Hopp 40865e
  >> DictionarySetattr
Karsten Hopp 40865e
  del d.locked:AttributeError:('cannot delete vim.Dictionary attributes',)
Karsten Hopp 40865e
  d.locked = FailingTrue():NotImplementedError:()
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 486,537 ****
Karsten Hopp 40865e
  d["a"] = {u"\0" : 1}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d["a"] = {"\0" : 1}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = {"abc" : {%s : 1}}
Karsten Hopp 40865e
! d["a"] = {"abc" : {1 : 1}}:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d["a"] = {"abc" : {u"\0" : 1}}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d["a"] = {"abc" : {"\0" : 1}}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = {"abc" : Mapping({%s : 1})}
Karsten Hopp 40865e
! d["a"] = {"abc" : Mapping({1 : 1})}:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d["a"] = {"abc" : Mapping({u"\0" : 1})}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d["a"] = {"abc" : Mapping({"\0" : 1})}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d["a"] = {"abc" : %s}
Karsten Hopp 40865e
! d["a"] = {"abc" : FailingIter()}:TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d["a"] = {"abc" : FailingIterNext()}:NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d["a"] = {"abc" : %s}
Karsten Hopp 40865e
! d["a"] = {"abc" : None}:TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d["a"] = {"abc" : {"": 1}}:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d["a"] = {"abc" : {u"": 1}}:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d["a"] = {"abc" : FailingMapping()}:NotImplementedError:()
Karsten Hopp 40865e
! d["a"] = {"abc" : FailingMappingKey()}:NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d["a"] = Mapping({%s : 1})
Karsten Hopp 40865e
  d["a"] = Mapping({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  d["a"] = Mapping({u"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d["a"] = Mapping({"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = Mapping({"abc" : {%s : 1}})
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = Mapping({"abc" : Mapping({%s : 1})})
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d["a"] = Mapping({"abc" : %s})
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : FailingIterNext()}):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abc" : %s})
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : None}):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : FailingMapping()}):NotImplementedError:()
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : FailingMappingKey()}):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d["a"] = %s
Karsten Hopp 40865e
  d["a"] = FailingIter():TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
--- 489,540 ----
Karsten Hopp 40865e
  d["a"] = {u"\0" : 1}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d["a"] = {"\0" : 1}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = {"abcF" : {%s : 1}}
Karsten Hopp 40865e
! d["a"] = {"abcF" : {1 : 1}}:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d["a"] = {"abcF" : {u"\0" : 1}}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d["a"] = {"abcF" : {"\0" : 1}}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = {"abcF" : Mapping({%s : 1})}
Karsten Hopp 40865e
! d["a"] = {"abcF" : Mapping({1 : 1})}:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d["a"] = {"abcF" : Mapping({u"\0" : 1})}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d["a"] = {"abcF" : Mapping({"\0" : 1})}:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d["a"] = {"abcF" : %s}
Karsten Hopp 40865e
! d["a"] = {"abcF" : FailingIter()}:TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d["a"] = {"abcF" : FailingIterNext()}:NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s}
Karsten Hopp 40865e
! d["a"] = {"abcF" : None}:TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d["a"] = {"abcF" : {"": 1}}:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d["a"] = {"abcF" : {u"": 1}}:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d["a"] = {"abcF" : FailingMapping()}:NotImplementedError:()
Karsten Hopp 40865e
! d["a"] = {"abcF" : FailingMappingKey()}:NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d["a"] = Mapping({%s : 1})
Karsten Hopp 40865e
  d["a"] = Mapping({1 : 1}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  d["a"] = Mapping({u"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d["a"] = Mapping({"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = Mapping({"abcG" : {%s : 1}})
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {u"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = Mapping({"abcG" : Mapping({%s : 1})})
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d["a"] = Mapping({"abcG" : %s})
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : FailingIterNext()}):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abcG" : %s})
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : None}):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {u"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : FailingMapping()}):NotImplementedError:()
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : FailingMappingKey()}):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d["a"] = %s
Karsten Hopp 40865e
  d["a"] = FailingIter():TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 554,605 ****
Karsten Hopp 40865e
  d.update({u"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d.update({"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update({"abc" : {%s : 1}})
Karsten Hopp 40865e
! d.update({"abc" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update({"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update({"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update({"abc" : Mapping({%s : 1})})
Karsten Hopp 40865e
! d.update({"abc" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update({"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update({"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update({"abc" : %s})
Karsten Hopp 40865e
! d.update({"abc" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d.update({"abc" : FailingIterNext()}):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update({"abc" : %s})
Karsten Hopp 40865e
! d.update({"abc" : None}):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d.update({"abc" : {"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update({"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update({"abc" : FailingMapping()}):NotImplementedError:()
Karsten Hopp 40865e
! d.update({"abc" : FailingMappingKey()}):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d.update(Mapping({%s : 1}))
Karsten Hopp 40865e
  d.update(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  d.update(Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d.update(Mapping({"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update(Mapping({"abc" : {%s : 1}}))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {1 : 1}})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {u"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update(Mapping({"abc" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : Mapping({1 : 1})})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update(Mapping({"abc" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update(Mapping({"abc" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update(Mapping({"abc" : %s}))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d.update(Mapping({"abc" : FailingIterNext()})):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update(Mapping({"abc" : %s}))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : None})):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {u"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update(Mapping({"abc" : FailingMapping()})):NotImplementedError:()
Karsten Hopp 40865e
! d.update(Mapping({"abc" : FailingMappingKey()})):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d.update(%s)
Karsten Hopp 40865e
  d.update(FailingIter()):NotImplementedError:()
Karsten Hopp 40865e
--- 557,608 ----
Karsten Hopp 40865e
  d.update({u"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d.update({"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update({"abcF" : {%s : 1}})
Karsten Hopp 40865e
! d.update({"abcF" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update({"abcF" : {u"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update({"abcF" : {"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update({"abcF" : Mapping({%s : 1})})
Karsten Hopp 40865e
! d.update({"abcF" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update({"abcF" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update({"abcF" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update({"abcF" : %s})
Karsten Hopp 40865e
! d.update({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d.update({"abcF" : FailingIterNext()}):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update({"abcF" : %s})
Karsten Hopp 40865e
! d.update({"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d.update({"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update({"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update({"abcF" : FailingMapping()}):NotImplementedError:()
Karsten Hopp 40865e
! d.update({"abcF" : FailingMappingKey()}):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d.update(Mapping({%s : 1}))
Karsten Hopp 40865e
  d.update(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  d.update(Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d.update(Mapping({"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update(Mapping({"abcG" : {%s : 1}}))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {1 : 1}})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {u"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update(Mapping({"abcG" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : Mapping({1 : 1})})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update(Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : FailingIterNext()})):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update(Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : None})):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {u"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : FailingMapping()})):NotImplementedError:()
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d.update(%s)
Karsten Hopp 40865e
  d.update(FailingIter()):NotImplementedError:()
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 622,673 ****
Karsten Hopp 40865e
  d.update((("a", {u"\0" : 1}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d.update((("a", {"\0" : 1}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", {"abc" : {%s : 1}}),))
Karsten Hopp 40865e
! d.update((("a", {"abc" : {1 : 1}}),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update((("a", {"abc" : {u"\0" : 1}}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update((("a", {"abc" : {"\0" : 1}}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", {"abc" : Mapping({%s : 1})}),))
Karsten Hopp 40865e
! d.update((("a", {"abc" : Mapping({1 : 1})}),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update((("a", {"abc" : Mapping({u"\0" : 1})}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update((("a", {"abc" : Mapping({"\0" : 1})}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update((("a", {"abc" : %s}),))
Karsten Hopp 40865e
! d.update((("a", {"abc" : FailingIter()}),)):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d.update((("a", {"abc" : FailingIterNext()}),)):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update((("a", {"abc" : %s}),))
Karsten Hopp 40865e
! d.update((("a", {"abc" : None}),)):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d.update((("a", {"abc" : {"": 1}}),)):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update((("a", {"abc" : {u"": 1}}),)):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update((("a", {"abc" : FailingMapping()}),)):NotImplementedError:()
Karsten Hopp 40865e
! d.update((("a", {"abc" : FailingMappingKey()}),)):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),))
Karsten Hopp 40865e
  d.update((("a", Mapping({1 : 1})),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  d.update((("a", Mapping({u"\0" : 1})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d.update((("a", Mapping({"\0" : 1})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", Mapping({"abc" : {%s : 1}})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {1 : 1}})),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {u"\0" : 1}})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {"\0" : 1}})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", Mapping({"abc" : Mapping({%s : 1})})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : Mapping({1 : 1})})),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : Mapping({u"\0" : 1})})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : Mapping({"\0" : 1})})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update((("a", Mapping({"abc" : %s})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : FailingIter()})),)):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : FailingIterNext()})),)):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abc" : %s})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : None})),)):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {"": 1}})),)):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {u"": 1}})),)):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : FailingMapping()})),)):NotImplementedError:()
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : FailingMappingKey()})),)):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d.update((("a", %s),))
Karsten Hopp 40865e
  d.update((("a", FailingIter()),)):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
--- 625,676 ----
Karsten Hopp 40865e
  d.update((("a", {u"\0" : 1}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d.update((("a", {"\0" : 1}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", {"abcF" : {%s : 1}}),))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {1 : 1}}),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {u"\0" : 1}}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {"\0" : 1}}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", {"abcF" : Mapping({%s : 1})}),))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : Mapping({1 : 1})}),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update((("a", {"abcF" : Mapping({u"\0" : 1})}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update((("a", {"abcF" : Mapping({"\0" : 1})}),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update((("a", {"abcF" : %s}),))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : FailingIter()}),)):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d.update((("a", {"abcF" : FailingIterNext()}),)):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update((("a", {"abcF" : %s}),))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : None}),)):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {"": 1}}),)):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {u"": 1}}),)):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update((("a", {"abcF" : FailingMapping()}),)):NotImplementedError:()
Karsten Hopp 40865e
! d.update((("a", {"abcF" : FailingMappingKey()}),)):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),))
Karsten Hopp 40865e
  d.update((("a", Mapping({1 : 1})),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  d.update((("a", Mapping({u"\0" : 1})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  d.update((("a", Mapping({"\0" : 1})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", Mapping({"abcG" : {%s : 1}})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {1 : 1}})),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {u"\0" : 1}})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {"\0" : 1}})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", Mapping({"abcG" : Mapping({%s : 1})})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : Mapping({1 : 1})})),)):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : Mapping({u"\0" : 1})})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : Mapping({"\0" : 1})})),)):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update((("a", Mapping({"abcG" : %s})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : FailingIter()})),)):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : FailingIterNext()})),)):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abcG" : %s})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : None})),)):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {"": 1}})),)):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {u"": 1}})),)):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : FailingMapping()})),)):NotImplementedError:()
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : FailingMappingKey()})),)):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d.update((("a", %s),))
Karsten Hopp 40865e
  d.update((("a", FailingIter()),)):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 693,744 ****
Karsten Hopp 40865e
  vim.List([{u"\0" : 1}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  vim.List([{"\0" : 1}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([{"abc" : {%s : 1}}])
Karsten Hopp 40865e
! vim.List([{"abc" : {1 : 1}}]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.List([{"abc" : {u"\0" : 1}}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! vim.List([{"abc" : {"\0" : 1}}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([{"abc" : Mapping({%s : 1})}])
Karsten Hopp 40865e
! vim.List([{"abc" : Mapping({1 : 1})}]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.List([{"abc" : Mapping({u"\0" : 1})}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! vim.List([{"abc" : Mapping({"\0" : 1})}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using vim.List([{"abc" : %s}])
Karsten Hopp 40865e
! vim.List([{"abc" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! vim.List([{"abc" : FailingIterNext()}]):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using vim.List([{"abc" : %s}])
Karsten Hopp 40865e
! vim.List([{"abc" : None}]):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! vim.List([{"abc" : {"": 1}}]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! vim.List([{"abc" : {u"": 1}}]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! vim.List([{"abc" : FailingMapping()}]):NotImplementedError:()
Karsten Hopp 40865e
! vim.List([{"abc" : FailingMappingKey()}]):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using vim.List([Mapping({%s : 1})])
Karsten Hopp 40865e
  vim.List([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  vim.List([Mapping({u"\0" : 1})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  vim.List([Mapping({"\0" : 1})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([Mapping({"abc" : {%s : 1}})])
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {1 : 1}})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {u"\0" : 1}})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {"\0" : 1}})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([Mapping({"abc" : Mapping({%s : 1})})])
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : Mapping({1 : 1})})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : Mapping({u"\0" : 1})})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : Mapping({"\0" : 1})})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using vim.List([Mapping({"abc" : %s})])
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : FailingIterNext()})]):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using vim.List([Mapping({"abc" : %s})])
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : None})]):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {"": 1}})]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {u"": 1}})]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : FailingMapping()})]):NotImplementedError:()
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : FailingMappingKey()})]):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using vim.List([%s])
Karsten Hopp 40865e
  vim.List([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
--- 696,747 ----
Karsten Hopp 40865e
  vim.List([{u"\0" : 1}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  vim.List([{"\0" : 1}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([{"abcF" : {%s : 1}}])
Karsten Hopp 40865e
! vim.List([{"abcF" : {1 : 1}}]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.List([{"abcF" : {u"\0" : 1}}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! vim.List([{"abcF" : {"\0" : 1}}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([{"abcF" : Mapping({%s : 1})}])
Karsten Hopp 40865e
! vim.List([{"abcF" : Mapping({1 : 1})}]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.List([{"abcF" : Mapping({u"\0" : 1})}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! vim.List([{"abcF" : Mapping({"\0" : 1})}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using vim.List([{"abcF" : %s}])
Karsten Hopp 40865e
! vim.List([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! vim.List([{"abcF" : FailingIterNext()}]):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}])
Karsten Hopp 40865e
! vim.List([{"abcF" : None}]):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! vim.List([{"abcF" : {"": 1}}]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! vim.List([{"abcF" : {u"": 1}}]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! vim.List([{"abcF" : FailingMapping()}]):NotImplementedError:()
Karsten Hopp 40865e
! vim.List([{"abcF" : FailingMappingKey()}]):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using vim.List([Mapping({%s : 1})])
Karsten Hopp 40865e
  vim.List([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  vim.List([Mapping({u"\0" : 1})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  vim.List([Mapping({"\0" : 1})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([Mapping({"abcG" : {%s : 1}})])
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {1 : 1}})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {u"\0" : 1}})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {"\0" : 1}})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([Mapping({"abcG" : Mapping({%s : 1})})])
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : Mapping({1 : 1})})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : Mapping({u"\0" : 1})})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : Mapping({"\0" : 1})})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using vim.List([Mapping({"abcG" : %s})])
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : FailingIterNext()})]):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using vim.List([Mapping({"abcG" : %s})])
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : None})]):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {"": 1}})]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {u"": 1}})]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : FailingMapping()})]):NotImplementedError:()
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : FailingMappingKey()})]):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using vim.List([%s])
Karsten Hopp 40865e
  vim.List([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 757,814 ****
Karsten Hopp 40865e
  ll[1] = 2:error:('list is locked',)
Karsten Hopp 40865e
  l[1000] = 3:IndexError:('list index out of range',)
Karsten Hopp 40865e
  >> ListAssSlice
Karsten Hopp 40865e
! ll[1:100] = "abc":error:('list is locked',)
Karsten Hopp 40865e
  >>> Testing StringToChars using l[:] = [{%s : 1}]
Karsten Hopp 40865e
  l[:] = [{1 : 1}]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  l[:] = [{u"\0" : 1}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  l[:] = [{"\0" : 1}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [{"abc" : {%s : 1}}]
Karsten Hopp 40865e
! l[:] = [{"abc" : {1 : 1}}]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l[:] = [{"abc" : {u"\0" : 1}}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l[:] = [{"abc" : {"\0" : 1}}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [{"abc" : Mapping({%s : 1})}]
Karsten Hopp 40865e
! l[:] = [{"abc" : Mapping({1 : 1})}]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l[:] = [{"abc" : Mapping({u"\0" : 1})}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l[:] = [{"abc" : Mapping({"\0" : 1})}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l[:] = [{"abc" : %s}]
Karsten Hopp 40865e
! l[:] = [{"abc" : FailingIter()}]:TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! l[:] = [{"abc" : FailingIterNext()}]:NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l[:] = [{"abc" : %s}]
Karsten Hopp 40865e
! l[:] = [{"abc" : None}]:TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! l[:] = [{"abc" : {"": 1}}]:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l[:] = [{"abc" : {u"": 1}}]:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l[:] = [{"abc" : FailingMapping()}]:NotImplementedError:()
Karsten Hopp 40865e
! l[:] = [{"abc" : FailingMappingKey()}]:NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using l[:] = [Mapping({%s : 1})]
Karsten Hopp 40865e
  l[:] = [Mapping({1 : 1})]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  l[:] = [Mapping({u"\0" : 1})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  l[:] = [Mapping({"\0" : 1})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [Mapping({"abc" : {%s : 1}})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {1 : 1}})]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {u"\0" : 1}})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {"\0" : 1}})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [Mapping({"abc" : Mapping({%s : 1})})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : Mapping({1 : 1})})]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : Mapping({u"\0" : 1})})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : Mapping({"\0" : 1})})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l[:] = [Mapping({"abc" : %s})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : FailingIter()})]:TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : FailingIterNext()})]:NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abc" : %s})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : None})]:TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {"": 1}})]:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {u"": 1}})]:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : FailingMapping()})]:NotImplementedError:()
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : FailingMappingKey()})]:NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using l[:] = [%s]
Karsten Hopp 40865e
  l[:] = [FailingIter()]:TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
--- 760,817 ----
Karsten Hopp 40865e
  ll[1] = 2:error:('list is locked',)
Karsten Hopp 40865e
  l[1000] = 3:IndexError:('list index out of range',)
Karsten Hopp 40865e
  >> ListAssSlice
Karsten Hopp 40865e
! ll[1:100] = "abcJ":error:('list is locked',)
Karsten Hopp 40865e
  >>> Testing StringToChars using l[:] = [{%s : 1}]
Karsten Hopp 40865e
  l[:] = [{1 : 1}]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  l[:] = [{u"\0" : 1}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  l[:] = [{"\0" : 1}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [{"abcF" : {%s : 1}}]
Karsten Hopp 40865e
! l[:] = [{"abcF" : {1 : 1}}]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l[:] = [{"abcF" : {u"\0" : 1}}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l[:] = [{"abcF" : {"\0" : 1}}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [{"abcF" : Mapping({%s : 1})}]
Karsten Hopp 40865e
! l[:] = [{"abcF" : Mapping({1 : 1})}]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l[:] = [{"abcF" : Mapping({u"\0" : 1})}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l[:] = [{"abcF" : Mapping({"\0" : 1})}]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l[:] = [{"abcF" : %s}]
Karsten Hopp 40865e
! l[:] = [{"abcF" : FailingIter()}]:TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! l[:] = [{"abcF" : FailingIterNext()}]:NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}]
Karsten Hopp 40865e
! l[:] = [{"abcF" : None}]:TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! l[:] = [{"abcF" : {"": 1}}]:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l[:] = [{"abcF" : {u"": 1}}]:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l[:] = [{"abcF" : FailingMapping()}]:NotImplementedError:()
Karsten Hopp 40865e
! l[:] = [{"abcF" : FailingMappingKey()}]:NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using l[:] = [Mapping({%s : 1})]
Karsten Hopp 40865e
  l[:] = [Mapping({1 : 1})]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  l[:] = [Mapping({u"\0" : 1})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  l[:] = [Mapping({"\0" : 1})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [Mapping({"abcG" : {%s : 1}})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {1 : 1}})]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {u"\0" : 1}})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {"\0" : 1}})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [Mapping({"abcG" : Mapping({%s : 1})})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : Mapping({1 : 1})})]:TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : Mapping({u"\0" : 1})})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : Mapping({"\0" : 1})})]:TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : FailingIter()})]:TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : FailingIterNext()})]:NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : None})]:TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {"": 1}})]:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {u"": 1}})]:ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : FailingMapping()})]:NotImplementedError:()
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : FailingMappingKey()})]:NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using l[:] = [%s]
Karsten Hopp 40865e
  l[:] = [FailingIter()]:TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 827,878 ****
Karsten Hopp 40865e
  l.extend([{u"\0" : 1}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  l.extend([{"\0" : 1}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([{"abc" : {%s : 1}}])
Karsten Hopp 40865e
! l.extend([{"abc" : {1 : 1}}]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l.extend([{"abc" : {u"\0" : 1}}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l.extend([{"abc" : {"\0" : 1}}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([{"abc" : Mapping({%s : 1})}])
Karsten Hopp 40865e
! l.extend([{"abc" : Mapping({1 : 1})}]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l.extend([{"abc" : Mapping({u"\0" : 1})}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l.extend([{"abc" : Mapping({"\0" : 1})}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l.extend([{"abc" : %s}])
Karsten Hopp 40865e
! l.extend([{"abc" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! l.extend([{"abc" : FailingIterNext()}]):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l.extend([{"abc" : %s}])
Karsten Hopp 40865e
! l.extend([{"abc" : None}]):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! l.extend([{"abc" : {"": 1}}]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l.extend([{"abc" : {u"": 1}}]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l.extend([{"abc" : FailingMapping()}]):NotImplementedError:()
Karsten Hopp 40865e
! l.extend([{"abc" : FailingMappingKey()}]):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using l.extend([Mapping({%s : 1})])
Karsten Hopp 40865e
  l.extend([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  l.extend([Mapping({u"\0" : 1})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  l.extend([Mapping({"\0" : 1})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([Mapping({"abc" : {%s : 1}})])
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {1 : 1}})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {u"\0" : 1}})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {"\0" : 1}})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([Mapping({"abc" : Mapping({%s : 1})})])
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : Mapping({1 : 1})})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : Mapping({u"\0" : 1})})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : Mapping({"\0" : 1})})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l.extend([Mapping({"abc" : %s})])
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : FailingIterNext()})]):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l.extend([Mapping({"abc" : %s})])
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : None})]):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {"": 1}})]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {u"": 1}})]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : FailingMapping()})]):NotImplementedError:()
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : FailingMappingKey()})]):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using l.extend([%s])
Karsten Hopp 40865e
  l.extend([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
--- 830,881 ----
Karsten Hopp 40865e
  l.extend([{u"\0" : 1}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  l.extend([{"\0" : 1}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([{"abcF" : {%s : 1}}])
Karsten Hopp 40865e
! l.extend([{"abcF" : {1 : 1}}]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l.extend([{"abcF" : {u"\0" : 1}}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l.extend([{"abcF" : {"\0" : 1}}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([{"abcF" : Mapping({%s : 1})}])
Karsten Hopp 40865e
! l.extend([{"abcF" : Mapping({1 : 1})}]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l.extend([{"abcF" : Mapping({u"\0" : 1})}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l.extend([{"abcF" : Mapping({"\0" : 1})}]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l.extend([{"abcF" : %s}])
Karsten Hopp 40865e
! l.extend([{"abcF" : FailingIter()}]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! l.extend([{"abcF" : FailingIterNext()}]):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}])
Karsten Hopp 40865e
! l.extend([{"abcF" : None}]):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! l.extend([{"abcF" : {"": 1}}]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l.extend([{"abcF" : {u"": 1}}]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l.extend([{"abcF" : FailingMapping()}]):NotImplementedError:()
Karsten Hopp 40865e
! l.extend([{"abcF" : FailingMappingKey()}]):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using l.extend([Mapping({%s : 1})])
Karsten Hopp 40865e
  l.extend([Mapping({1 : 1})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  l.extend([Mapping({u"\0" : 1})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  l.extend([Mapping({"\0" : 1})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([Mapping({"abcG" : {%s : 1}})])
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {1 : 1}})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {u"\0" : 1}})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {"\0" : 1}})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([Mapping({"abcG" : Mapping({%s : 1})})])
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : Mapping({1 : 1})})]):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : Mapping({u"\0" : 1})})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : Mapping({"\0" : 1})})]):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l.extend([Mapping({"abcG" : %s})])
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : FailingIter()})]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : FailingIterNext()})]):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l.extend([Mapping({"abcG" : %s})])
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : None})]):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {"": 1}})]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {u"": 1}})]):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : FailingMapping()})]):NotImplementedError:()
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : FailingMappingKey()})]):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using l.extend([%s])
Karsten Hopp 40865e
  l.extend([FailingIter()]):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 900,951 ****
Karsten Hopp 40865e
  f({u"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  f({"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f({"abc" : {%s : 1}})
Karsten Hopp 40865e
! f({"abc" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! f({"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! f({"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f({"abc" : Mapping({%s : 1})})
Karsten Hopp 40865e
! f({"abc" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! f({"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! f({"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using f({"abc" : %s})
Karsten Hopp 40865e
! f({"abc" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! f({"abc" : FailingIterNext()}):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using f({"abc" : %s})
Karsten Hopp 40865e
! f({"abc" : None}):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! f({"abc" : {"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! f({"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! f({"abc" : FailingMapping()}):NotImplementedError:()
Karsten Hopp 40865e
! f({"abc" : FailingMappingKey()}):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using f(Mapping({%s : 1}))
Karsten Hopp 40865e
  f(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  f(Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  f(Mapping({"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f(Mapping({"abc" : {%s : 1}}))
Karsten Hopp 40865e
! f(Mapping({"abc" : {1 : 1}})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! f(Mapping({"abc" : {u"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! f(Mapping({"abc" : {"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f(Mapping({"abc" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! f(Mapping({"abc" : Mapping({1 : 1})})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! f(Mapping({"abc" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! f(Mapping({"abc" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using f(Mapping({"abc" : %s}))
Karsten Hopp 40865e
! f(Mapping({"abc" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! f(Mapping({"abc" : FailingIterNext()})):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using f(Mapping({"abc" : %s}))
Karsten Hopp 40865e
! f(Mapping({"abc" : None})):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! f(Mapping({"abc" : {"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! f(Mapping({"abc" : {u"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! f(Mapping({"abc" : FailingMapping()})):NotImplementedError:()
Karsten Hopp 40865e
! f(Mapping({"abc" : FailingMappingKey()})):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using f(%s)
Karsten Hopp 40865e
  f(FailingIter()):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
--- 903,954 ----
Karsten Hopp 40865e
  f({u"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  f({"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f({"abcF" : {%s : 1}})
Karsten Hopp 40865e
! f({"abcF" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! f({"abcF" : {u"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! f({"abcF" : {"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f({"abcF" : Mapping({%s : 1})})
Karsten Hopp 40865e
! f({"abcF" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! f({"abcF" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! f({"abcF" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using f({"abcF" : %s})
Karsten Hopp 40865e
! f({"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! f({"abcF" : FailingIterNext()}):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using f({"abcF" : %s})
Karsten Hopp 40865e
! f({"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! f({"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! f({"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! f({"abcF" : FailingMapping()}):NotImplementedError:()
Karsten Hopp 40865e
! f({"abcF" : FailingMappingKey()}):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using f(Mapping({%s : 1}))
Karsten Hopp 40865e
  f(Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  f(Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  f(Mapping({"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f(Mapping({"abcG" : {%s : 1}}))
Karsten Hopp 40865e
! f(Mapping({"abcG" : {1 : 1}})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! f(Mapping({"abcG" : {u"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! f(Mapping({"abcG" : {"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f(Mapping({"abcG" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! f(Mapping({"abcG" : Mapping({1 : 1})})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! f(Mapping({"abcG" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! f(Mapping({"abcG" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using f(Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! f(Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! f(Mapping({"abcG" : FailingIterNext()})):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! f(Mapping({"abcG" : None})):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! f(Mapping({"abcG" : {"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! f(Mapping({"abcG" : {u"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! f(Mapping({"abcG" : FailingMapping()})):NotImplementedError:()
Karsten Hopp 40865e
! f(Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using f(%s)
Karsten Hopp 40865e
  f(FailingIter()):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 963,1014 ****
Karsten Hopp 40865e
  fd(self={u"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  fd(self={"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self={"abc" : {%s : 1}})
Karsten Hopp 40865e
! fd(self={"abc" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! fd(self={"abc" : {u"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! fd(self={"abc" : {"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self={"abc" : Mapping({%s : 1})})
Karsten Hopp 40865e
! fd(self={"abc" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! fd(self={"abc" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! fd(self={"abc" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using fd(self={"abc" : %s})
Karsten Hopp 40865e
! fd(self={"abc" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! fd(self={"abc" : FailingIterNext()}):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using fd(self={"abc" : %s})
Karsten Hopp 40865e
! fd(self={"abc" : None}):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! fd(self={"abc" : {"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! fd(self={"abc" : {u"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! fd(self={"abc" : FailingMapping()}):NotImplementedError:()
Karsten Hopp 40865e
! fd(self={"abc" : FailingMappingKey()}):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using fd(self=Mapping({%s : 1}))
Karsten Hopp 40865e
  fd(self=Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  fd(self=Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  fd(self=Mapping({"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self=Mapping({"abc" : {%s : 1}}))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {1 : 1}})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {u"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self=Mapping({"abc" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : Mapping({1 : 1})})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using fd(self=Mapping({"abc" : %s}))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : FailingIterNext()})):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using fd(self=Mapping({"abc" : %s}))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : None})):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {u"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : FailingMapping()})):NotImplementedError:()
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : FailingMappingKey()})):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using fd(self=%s)
Karsten Hopp 40865e
  fd(self=FailingIter()):TypeError:('unable to convert FailingIter to vim dictionary',)
Karsten Hopp 40865e
--- 966,1017 ----
Karsten Hopp 40865e
  fd(self={u"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  fd(self={"\0" : 1}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self={"abcF" : {%s : 1}})
Karsten Hopp 40865e
! fd(self={"abcF" : {1 : 1}}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! fd(self={"abcF" : {u"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! fd(self={"abcF" : {"\0" : 1}}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self={"abcF" : Mapping({%s : 1})})
Karsten Hopp 40865e
! fd(self={"abcF" : Mapping({1 : 1})}):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! fd(self={"abcF" : Mapping({u"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! fd(self={"abcF" : Mapping({"\0" : 1})}):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using fd(self={"abcF" : %s})
Karsten Hopp 40865e
! fd(self={"abcF" : FailingIter()}):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! fd(self={"abcF" : FailingIterNext()}):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using fd(self={"abcF" : %s})
Karsten Hopp 40865e
! fd(self={"abcF" : None}):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! fd(self={"abcF" : {"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! fd(self={"abcF" : {u"": 1}}):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! fd(self={"abcF" : FailingMapping()}):NotImplementedError:()
Karsten Hopp 40865e
! fd(self={"abcF" : FailingMappingKey()}):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using fd(self=Mapping({%s : 1}))
Karsten Hopp 40865e
  fd(self=Mapping({1 : 1})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
  fd(self=Mapping({u"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  fd(self=Mapping({"\0" : 1})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self=Mapping({"abcG" : {%s : 1}}))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {1 : 1}})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {u"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {"\0" : 1}})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self=Mapping({"abcG" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : Mapping({1 : 1})})):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : Mapping({u"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : Mapping({"\0" : 1})})):TypeError:('expected string without null bytes',)
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using fd(self=Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : FailingIter()})):TypeError:('unable to convert FailingIter to vim structure',)
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : FailingIterNext()})):NotImplementedError:()
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using fd(self=Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : None})):TypeError:('unable to convert NoneType to vim structure',)
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {u"": 1}})):ValueError:('empty keys are not allowed',)
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : FailingMapping()})):NotImplementedError:()
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : FailingMappingKey()})):NotImplementedError:()
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using fd(self=%s)
Karsten Hopp 40865e
  fd(self=FailingIter()):TypeError:('unable to convert FailingIter to vim dictionary',)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1037,1044 ****
Karsten Hopp 40865e
  vim.current.window.buffer = 0:TypeError:('readonly attribute: buffer',)
Karsten Hopp 40865e
  vim.current.window.cursor = (100000000, 100000000):error:('cursor position outside buffer',)
Karsten Hopp 40865e
  vim.current.window.cursor = True:TypeError:('argument must be 2-item sequence, not bool',)
Karsten Hopp 40865e
! vim.current.window.height = "abc":TypeError:('expected int(), long() or something supporting coercing to long(), but got str',)
Karsten Hopp 40865e
! vim.current.window.width  = "abc":TypeError:('expected int(), long() or something supporting coercing to long(), but got str',)
Karsten Hopp 40865e
  vim.current.window.xxxxxx = True:AttributeError:('xxxxxx',)
Karsten Hopp 40865e
  > WinList
Karsten Hopp 40865e
  >> WinListItem
Karsten Hopp 40865e
--- 1040,1047 ----
Karsten Hopp 40865e
  vim.current.window.buffer = 0:TypeError:('readonly attribute: buffer',)
Karsten Hopp 40865e
  vim.current.window.cursor = (100000000, 100000000):error:('cursor position outside buffer',)
Karsten Hopp 40865e
  vim.current.window.cursor = True:TypeError:('argument must be 2-item sequence, not bool',)
Karsten Hopp 40865e
! vim.current.window.height = "abcK":TypeError:('expected int(), long() or something supporting coercing to long(), but got str',)
Karsten Hopp 40865e
! vim.current.window.width  = "abcL":TypeError:('expected int(), long() or something supporting coercing to long(), but got str',)
Karsten Hopp 40865e
  vim.current.window.xxxxxx = True:AttributeError:('xxxxxx',)
Karsten Hopp 40865e
  > WinList
Karsten Hopp 40865e
  >> WinListItem
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1048,1054 ****
Karsten Hopp 40865e
  vim.current.buffer[0] = "\na":error:('string cannot contain newlines',)
Karsten Hopp 40865e
  >> SetBufferLine (indirect)
Karsten Hopp 40865e
  vim.current.buffer[0] = True:TypeError:('bad argument type for built-in operation',)
Karsten Hopp 40865e
! >> SetBufferLines (indirect)
Karsten Hopp 40865e
  vim.current.buffer[:] = True:TypeError:('bad argument type for built-in operation',)
Karsten Hopp 40865e
  vim.current.buffer[:] = ["\na", "bc"]:error:('string cannot contain newlines',)
Karsten Hopp 40865e
  >> InsertBufferLines (indirect)
Karsten Hopp 40865e
--- 1051,1057 ----
Karsten Hopp 40865e
  vim.current.buffer[0] = "\na":error:('string cannot contain newlines',)
Karsten Hopp 40865e
  >> SetBufferLine (indirect)
Karsten Hopp 40865e
  vim.current.buffer[0] = True:TypeError:('bad argument type for built-in operation',)
Karsten Hopp 40865e
! >> SetBufferLineList (indirect)
Karsten Hopp 40865e
  vim.current.buffer[:] = True:TypeError:('bad argument type for built-in operation',)
Karsten Hopp 40865e
  vim.current.buffer[:] = ["\na", "bc"]:error:('string cannot contain newlines',)
Karsten Hopp 40865e
  >> InsertBufferLines (indirect)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1066,1072 ****
Karsten Hopp 40865e
  vim.current.buffer.xxx = True:AttributeError:('xxx',)
Karsten Hopp 40865e
  >> BufferMark
Karsten Hopp 40865e
  vim.current.buffer.mark(0):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.current.buffer.mark("abc"):ValueError:('mark name must be a single character',)
Karsten Hopp 40865e
  vim.current.buffer.mark("!"):error:('invalid mark name',)
Karsten Hopp 40865e
  >> BufferRange
Karsten Hopp 40865e
  vim.current.buffer.range(1, 2, 3):TypeError:('function takes exactly 2 arguments (3 given)',)
Karsten Hopp 40865e
--- 1069,1075 ----
Karsten Hopp 40865e
  vim.current.buffer.xxx = True:AttributeError:('xxx',)
Karsten Hopp 40865e
  >> BufferMark
Karsten Hopp 40865e
  vim.current.buffer.mark(0):TypeError:('expected str() or unicode() instance, but got int',)
Karsten Hopp 40865e
! vim.current.buffer.mark("abcM"):ValueError:('mark name must be a single character',)
Karsten Hopp 40865e
  vim.current.buffer.mark("!"):error:('invalid mark name',)
Karsten Hopp 40865e
  >> BufferRange
Karsten Hopp 40865e
  vim.current.buffer.range(1, 2, 3):TypeError:('function takes exactly 2 arguments (3 given)',)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1086,1092 ****
Karsten Hopp 40865e
  2,xx
Karsten Hopp 40865e
  before
Karsten Hopp 40865e
  after
Karsten Hopp 40865e
! vim.command("throw 'abc'"):error:('abc',)
Karsten Hopp 40865e
  Exe("throw 'def'"):error:('def',)
Karsten Hopp 40865e
  vim.eval("Exe('throw ''ghi''')"):error:('ghi',)
Karsten Hopp 40865e
  vim.eval("Exe('echoerr ''jkl''')"):error:('Vim(echoerr):jkl',)
Karsten Hopp 40865e
--- 1089,1095 ----
Karsten Hopp 40865e
  2,xx
Karsten Hopp 40865e
  before
Karsten Hopp 40865e
  after
Karsten Hopp 40865e
! vim.command("throw 'abcN'"):error:('abcN',)
Karsten Hopp 40865e
  Exe("throw 'def'"):error:('def',)
Karsten Hopp 40865e
  vim.eval("Exe('throw ''ghi''')"):error:('ghi',)
Karsten Hopp 40865e
  vim.eval("Exe('echoerr ''jkl''')"):error:('Vim(echoerr):jkl',)
Karsten Hopp 40865e
*** ../vim-7.3.1232/src/testdir/test87.in	2013-06-12 14:20:15.000000000 +0200
Karsten Hopp 40865e
--- src/testdir/test87.in	2013-06-23 14:34:17.000000000 +0200
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 5,12 ****
Karsten Hopp 40865e
  :set noswapfile
Karsten Hopp 40865e
  :if !has('python3') | e! test.ok | wq! test.out | endif
Karsten Hopp 40865e
  :lang C
Karsten Hopp 40865e
- :py3 import vim
Karsten Hopp 40865e
  :fun Test()
Karsten Hopp 40865e
  :let l = []
Karsten Hopp 40865e
  :py3 l=vim.bindeval('l')
Karsten Hopp 40865e
  :py3 f=vim.bindeval('function("strlen")')
Karsten Hopp 40865e
--- 5,12 ----
Karsten Hopp 40865e
  :set noswapfile
Karsten Hopp 40865e
  :if !has('python3') | e! test.ok | wq! test.out | endif
Karsten Hopp 40865e
  :lang C
Karsten Hopp 40865e
  :fun Test()
Karsten Hopp 40865e
+ :py3 import vim
Karsten Hopp 40865e
  :let l = []
Karsten Hopp 40865e
  :py3 l=vim.bindeval('l')
Karsten Hopp 40865e
  :py3 f=vim.bindeval('function("strlen")')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 51,56 ****
Karsten Hopp 40865e
--- 51,59 ----
Karsten Hopp 40865e
  :  $put =string(key) . ' : ' . string(Val)
Karsten Hopp 40865e
  :  unlet key Val
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
+ :py3 del dk
Karsten Hopp 40865e
+ :py3 del di
Karsten Hopp 40865e
+ :py3 del dv
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" removing items with del
Karsten Hopp 40865e
  :py3 del l[2]
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 169,180 ****
Karsten Hopp 40865e
  :unlockvar! l
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Function calls
Karsten Hopp 40865e
! :function New(...)
Karsten Hopp 40865e
! :return ['NewStart']+a:000+['NewEnd']
Karsten Hopp 40865e
! :endfunction
Karsten Hopp 40865e
! :function DictNew(...) dict
Karsten Hopp 40865e
! :return ['DictNewStart']+a:000+['DictNewEnd', self]
Karsten Hopp 40865e
! :endfunction
Karsten Hopp 40865e
  :let l=[function('New'), function('DictNew')]
Karsten Hopp 40865e
  :py3 l=vim.bindeval('l')
Karsten Hopp 40865e
  :py3 l.extend(list(l[0](1, 2, 3)))
Karsten Hopp 40865e
--- 172,183 ----
Karsten Hopp 40865e
  :unlockvar! l
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Function calls
Karsten Hopp 40865e
! :fun New(...)
Karsten Hopp 40865e
! :   return ['NewStart']+a:000+['NewEnd']
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
! :fun DictNew(...) dict
Karsten Hopp 40865e
! :   return ['DictNewStart']+a:000+['DictNewEnd', self]
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
  :let l=[function('New'), function('DictNew')]
Karsten Hopp 40865e
  :py3 l=vim.bindeval('l')
Karsten Hopp 40865e
  :py3 l.extend(list(l[0](1, 2, 3)))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 204,210 ****
Karsten Hopp 40865e
  :   $put ='[0.0, 0.0]'
Karsten Hopp 40865e
  :endif
Karsten Hopp 40865e
  :let messages=[]
Karsten Hopp 40865e
! :py3 <
Karsten Hopp 40865e
  d=vim.bindeval('{}')
Karsten Hopp 40865e
  m=vim.bindeval('messages')
Karsten Hopp 40865e
  def em(expr, g=globals(), l=locals()):
Karsten Hopp 40865e
--- 207,214 ----
Karsten Hopp 40865e
  :   $put ='[0.0, 0.0]'
Karsten Hopp 40865e
  :endif
Karsten Hopp 40865e
  :let messages=[]
Karsten Hopp 40865e
! :delfunction DictNew
Karsten Hopp 40865e
! py3 <
Karsten Hopp 40865e
  d=vim.bindeval('{}')
Karsten Hopp 40865e
  m=vim.bindeval('messages')
Karsten Hopp 40865e
  def em(expr, g=globals(), l=locals()):
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 213,227 ****
Karsten Hopp 40865e
      except Exception as e:
Karsten Hopp 40865e
          m.extend([e.__class__.__name__])
Karsten Hopp 40865e
  
Karsten Hopp 40865e
! em('d["abc"]')
Karsten Hopp 40865e
! em('d["abc"]="\\0"')
Karsten Hopp 40865e
! em('d["abc"]=vim')
Karsten Hopp 40865e
  em('d[""]=1')
Karsten Hopp 40865e
  em('d["a\\0b"]=1')
Karsten Hopp 40865e
  em('d[b"a\\0b"]=1')
Karsten Hopp 40865e
  
Karsten Hopp 40865e
! em('d.pop("abc")')
Karsten Hopp 40865e
  em('d.popitem()')
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :$put =messages
Karsten Hopp 40865e
  :unlet messages
Karsten Hopp 40865e
--- 217,233 ----
Karsten Hopp 40865e
      except Exception as e:
Karsten Hopp 40865e
          m.extend([e.__class__.__name__])
Karsten Hopp 40865e
  
Karsten Hopp 40865e
! em('d["abc1"]')
Karsten Hopp 40865e
! em('d["abc1"]="\\0"')
Karsten Hopp 40865e
! em('d["abc1"]=vim')
Karsten Hopp 40865e
  em('d[""]=1')
Karsten Hopp 40865e
  em('d["a\\0b"]=1')
Karsten Hopp 40865e
  em('d[b"a\\0b"]=1')
Karsten Hopp 40865e
  
Karsten Hopp 40865e
! em('d.pop("abc1")')
Karsten Hopp 40865e
  em('d.popitem()')
Karsten Hopp 40865e
+ del em
Karsten Hopp 40865e
+ del m
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :$put =messages
Karsten Hopp 40865e
  :unlet messages
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 233,240 ****
Karsten Hopp 40865e
  :    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3eval(name.".".v:val)'), ';')
Karsten Hopp 40865e
  :    $put =toput
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
! :silent! let d.abc=1
Karsten Hopp 40865e
! :silent! let dl.abc=1
Karsten Hopp 40865e
  :py3 d.locked=True
Karsten Hopp 40865e
  :py3 dl.locked=False
Karsten Hopp 40865e
  :silent! let d.def=1
Karsten Hopp 40865e
--- 239,246 ----
Karsten Hopp 40865e
  :    let toput=s.' : '.join(map(['locked', 'scope'], 'v:val.":".py3eval(name.".".v:val)'), ';')
Karsten Hopp 40865e
  :    $put =toput
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
! :silent! let d.abc2=1
Karsten Hopp 40865e
! :silent! let dl.abc3=1
Karsten Hopp 40865e
  :py3 d.locked=True
Karsten Hopp 40865e
  :py3 dl.locked=False
Karsten Hopp 40865e
  :silent! let d.def=1
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 300,311 ****
Karsten Hopp 40865e
--- 306,320 ----
Karsten Hopp 40865e
              time.sleep(0.1)
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  t = T()
Karsten Hopp 40865e
+ del T
Karsten Hopp 40865e
  t.start()
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :sleep 1
Karsten Hopp 40865e
  :py3 t.running = False
Karsten Hopp 40865e
  :py3 t.join()
Karsten Hopp 40865e
  :py3 l[0] = t.t > 8  # check if the background thread is working
Karsten Hopp 40865e
+ :py3 del time
Karsten Hopp 40865e
+ :py3 del threading
Karsten Hopp 40865e
  :$put =string(l)
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" settrace
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 326,337 ****
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :py3 sys.settrace(traceit)
Karsten Hopp 40865e
  :py3 trace_main()
Karsten Hopp 40865e
  :py3 sys.settrace(None)
Karsten Hopp 40865e
  :$put =string(l)
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Vars
Karsten Hopp 40865e
  :let g:foo = 'bac'
Karsten Hopp 40865e
! :let w:abc = 'def'
Karsten Hopp 40865e
  :let b:baz = 'bar'
Karsten Hopp 40865e
  :let t:bar = 'jkl'
Karsten Hopp 40865e
  :try
Karsten Hopp 40865e
--- 335,348 ----
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :py3 sys.settrace(traceit)
Karsten Hopp 40865e
  :py3 trace_main()
Karsten Hopp 40865e
+ :py3 del traceit
Karsten Hopp 40865e
+ :py3 del trace_main
Karsten Hopp 40865e
  :py3 sys.settrace(None)
Karsten Hopp 40865e
  :$put =string(l)
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Vars
Karsten Hopp 40865e
  :let g:foo = 'bac'
Karsten Hopp 40865e
! :let w:abc3 = 'def'
Karsten Hopp 40865e
  :let b:baz = 'bar'
Karsten Hopp 40865e
  :let t:bar = 'jkl'
Karsten Hopp 40865e
  :try
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 340,346 ****
Karsten Hopp 40865e
  :  put =py3eval('vim.vvars[''exception'']')
Karsten Hopp 40865e
  :endtry
Karsten Hopp 40865e
  :put =py3eval('vim.vars[''foo'']')
Karsten Hopp 40865e
! :put =py3eval('vim.current.window.vars[''abc'']')
Karsten Hopp 40865e
  :put =py3eval('vim.current.buffer.vars[''baz'']')
Karsten Hopp 40865e
  :put =py3eval('vim.current.tabpage.vars[''bar'']')
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
--- 351,357 ----
Karsten Hopp 40865e
  :  put =py3eval('vim.vvars[''exception'']')
Karsten Hopp 40865e
  :endtry
Karsten Hopp 40865e
  :put =py3eval('vim.vars[''foo'']')
Karsten Hopp 40865e
! :put =py3eval('vim.current.window.vars[''abc3'']')
Karsten Hopp 40865e
  :put =py3eval('vim.current.buffer.vars[''baz'']')
Karsten Hopp 40865e
  :put =py3eval('vim.current.tabpage.vars[''bar'']')
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 388,403 ****
Karsten Hopp 40865e
          vim.command('let exc=' + repr(e.__class__.__name__))
Karsten Hopp 40865e
          return 0
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
! :function E(s)
Karsten Hopp 40865e
  :   python3 e(vim.eval('a:s'))
Karsten Hopp 40865e
! :endfunction
Karsten Hopp 40865e
! :function Ev(s)
Karsten Hopp 40865e
  :   let r=py3eval('ev(vim.eval("a:s"))')
Karsten Hopp 40865e
  :   if exists('exc')
Karsten Hopp 40865e
  :       throw exc
Karsten Hopp 40865e
  :   endif
Karsten Hopp 40865e
  :   return r
Karsten Hopp 40865e
! :endfunction
Karsten Hopp 40865e
  :py3 gopts1=vim.options
Karsten Hopp 40865e
  :py3 wopts1=vim.windows[2].options
Karsten Hopp 40865e
  :py3 wopts2=vim.windows[0].options
Karsten Hopp 40865e
--- 399,414 ----
Karsten Hopp 40865e
          vim.command('let exc=' + repr(e.__class__.__name__))
Karsten Hopp 40865e
          return 0
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
! :fun E(s)
Karsten Hopp 40865e
  :   python3 e(vim.eval('a:s'))
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
! :fun Ev(s)
Karsten Hopp 40865e
  :   let r=py3eval('ev(vim.eval("a:s"))')
Karsten Hopp 40865e
  :   if exists('exc')
Karsten Hopp 40865e
  :       throw exc
Karsten Hopp 40865e
  :   endif
Karsten Hopp 40865e
  :   return r
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
  :py3 gopts1=vim.options
Karsten Hopp 40865e
  :py3 wopts1=vim.windows[2].options
Karsten Hopp 40865e
  :py3 wopts2=vim.windows[0].options
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 412,418 ****
Karsten Hopp 40865e
  :let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,    1,      0    ]]
Karsten Hopp 40865e
  :let lst+=[['number',         0,     1,     1,     0,      1,    0,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['numberwidth',    2,     3,     5,     -100,   0,    0,      1    ]]
Karsten Hopp 40865e
! :let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc',  0,    0,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['statusline',     '1',   '2',   '4',   0,      0,    1,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['autoindent',     0,     1,     1,     2,      1,    0,      2    ]]
Karsten Hopp 40865e
  :let lst+=[['shiftwidth',     0,     2,     1,     3,      0,    0,      2    ]]
Karsten Hopp 40865e
--- 423,429 ----
Karsten Hopp 40865e
  :let lst+=[['operatorfunc',   'A',   'B',   'C',   2,      0,    1,      0    ]]
Karsten Hopp 40865e
  :let lst+=[['number',         0,     1,     1,     0,      1,    0,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['numberwidth',    2,     3,     5,     -100,   0,    0,      1    ]]
Karsten Hopp 40865e
! :let lst+=[['colorcolumn',    '+1',  '+2',  '+3',  'abc4',  0,    0,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['statusline',     '1',   '2',   '4',   0,      0,    1,      1    ]]
Karsten Hopp 40865e
  :let lst+=[['autoindent',     0,     1,     1,     2,      1,    0,      2    ]]
Karsten Hopp 40865e
  :let lst+=[['shiftwidth',     0,     2,     1,     3,      0,    0,      2    ]]
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 462,471 ****
Karsten Hopp 40865e
--- 473,499 ----
Karsten Hopp 40865e
  :   endfor
Karsten Hopp 40865e
  :   call RecVars(oname)
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
+ :delfunction RecVars
Karsten Hopp 40865e
+ :delfunction E
Karsten Hopp 40865e
+ :delfunction Ev
Karsten Hopp 40865e
+ :py3 del ev
Karsten Hopp 40865e
+ :py3 del e
Karsten Hopp 40865e
  :only
Karsten Hopp 40865e
  :for buf in g:bufs[1:]
Karsten Hopp 40865e
  :   execute 'bwipeout!' buf
Karsten Hopp 40865e
  :endfor
Karsten Hopp 40865e
+ :py3 del gopts1
Karsten Hopp 40865e
+ :py3 del wopts1
Karsten Hopp 40865e
+ :py3 del wopts2
Karsten Hopp 40865e
+ :py3 del wopts3
Karsten Hopp 40865e
+ :py3 del bopts1
Karsten Hopp 40865e
+ :py3 del bopts2
Karsten Hopp 40865e
+ :py3 del bopts3
Karsten Hopp 40865e
+ :py3 del oval1
Karsten Hopp 40865e
+ :py3 del oval2
Karsten Hopp 40865e
+ :py3 del oval3
Karsten Hopp 40865e
+ :py3 del oname
Karsten Hopp 40865e
+ :py3 del invval
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test buffer object
Karsten Hopp 40865e
  :vnew
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 485,491 ****
Karsten Hopp 40865e
  # Tests BufferAppend and BufferItem
Karsten Hopp 40865e
  cb.append(b[0])
Karsten Hopp 40865e
  # Tests BufferSlice and BufferAssSlice
Karsten Hopp 40865e
! cb.append('abc') # Will be overwritten
Karsten Hopp 40865e
  cb[-1:] = b[:-2]
Karsten Hopp 40865e
  # Test BufferLength and BufferAssSlice
Karsten Hopp 40865e
  cb.append('def') # Will not be overwritten
Karsten Hopp 40865e
--- 513,519 ----
Karsten Hopp 40865e
  # Tests BufferAppend and BufferItem
Karsten Hopp 40865e
  cb.append(b[0])
Karsten Hopp 40865e
  # Tests BufferSlice and BufferAssSlice
Karsten Hopp 40865e
! cb.append('abc5') # Will be overwritten
Karsten Hopp 40865e
  cb[-1:] = b[:-2]
Karsten Hopp 40865e
  # Test BufferLength and BufferAssSlice
Karsten Hopp 40865e
  cb.append('def') # Will not be overwritten
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 509,521 ****
Karsten Hopp 40865e
  cb.append(b.name[-11:].replace(os.path.sep, '/'))
Karsten Hopp 40865e
  cb.name = old_name
Karsten Hopp 40865e
  cb.append(cb.name[-17:].replace(os.path.sep, '/'))
Karsten Hopp 40865e
  # Test CheckBuffer
Karsten Hopp 40865e
  for _b in vim.buffers:
Karsten Hopp 40865e
      if _b is not cb:
Karsten Hopp 40865e
          vim.command('bwipeout! ' + str(_b.number))
Karsten Hopp 40865e
  del _b
Karsten Hopp 40865e
  cb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid)))
Karsten Hopp 40865e
! for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc")'):
Karsten Hopp 40865e
      try:
Karsten Hopp 40865e
          exec(expr)
Karsten Hopp 40865e
      except vim.error:
Karsten Hopp 40865e
--- 537,550 ----
Karsten Hopp 40865e
  cb.append(b.name[-11:].replace(os.path.sep, '/'))
Karsten Hopp 40865e
  cb.name = old_name
Karsten Hopp 40865e
  cb.append(cb.name[-17:].replace(os.path.sep, '/'))
Karsten Hopp 40865e
+ del old_name
Karsten Hopp 40865e
  # Test CheckBuffer
Karsten Hopp 40865e
  for _b in vim.buffers:
Karsten Hopp 40865e
      if _b is not cb:
Karsten Hopp 40865e
          vim.command('bwipeout! ' + str(_b.number))
Karsten Hopp 40865e
  del _b
Karsten Hopp 40865e
  cb.append('valid: b:%s, cb:%s' % (repr(b.valid), repr(cb.valid)))
Karsten Hopp 40865e
! for expr in ('b[1]','b[:] = ["A", "B"]','b[:]','b.append("abc6")'):
Karsten Hopp 40865e
      try:
Karsten Hopp 40865e
          exec(expr)
Karsten Hopp 40865e
      except vim.error:
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 525,530 ****
Karsten Hopp 40865e
--- 554,560 ----
Karsten Hopp 40865e
          # Should not happen in any case
Karsten Hopp 40865e
          cb.append('No exception for ' + expr)
Karsten Hopp 40865e
  vim.command('cd .')
Karsten Hopp 40865e
+ del b
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test vim.buffers object
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 558,563 ****
Karsten Hopp 40865e
--- 588,594 ----
Karsten Hopp 40865e
      # Check indexing: vim.buffers[number].number == number
Karsten Hopp 40865e
      cb.append(str(b.number) + ':' + repr(vim.buffers[b.number]) + '=' + repr(b))
Karsten Hopp 40865e
      prevnum = b.number
Karsten Hopp 40865e
+ del prevnum
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  cb.append(str(len(vim.buffers)))
Karsten Hopp 40865e
  
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 581,586 ****
Karsten Hopp 40865e
--- 612,619 ----
Karsten Hopp 40865e
      next(i4)
Karsten Hopp 40865e
  except StopIteration:
Karsten Hopp 40865e
      cb.append('StopIteration')
Karsten Hopp 40865e
+ del i4
Karsten Hopp 40865e
+ del bnums
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test vim.{tabpage,window}list and vim.{tabpage,window} objects
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 622,628 ****
Karsten Hopp 40865e
--- 655,665 ----
Karsten Hopp 40865e
                      raise ValueError
Karsten Hopp 40865e
              except Exception as e:
Karsten Hopp 40865e
                  cb.append('!!!!!! Error while getting attribute ' + attr + ': ' + e.__class__.__name__)
Karsten Hopp 40865e
+         del aval
Karsten Hopp 40865e
+         del attr
Karsten Hopp 40865e
          w.cursor = (len(w.buffer), 0)
Karsten Hopp 40865e
+ del W
Karsten Hopp 40865e
+ del Cursor
Karsten Hopp 40865e
  cb.append('Number of windows in current tab page: ' + str(len(vim.windows)))
Karsten Hopp 40865e
  if list(vim.windows) != list(vim.current.tabpage.windows):
Karsten Hopp 40865e
      cb.append('!!!!!! Windows differ')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 635,640 ****
Karsten Hopp 40865e
--- 672,678 ----
Karsten Hopp 40865e
  cb.append('Current tab page: ' + repr(vim.current.tabpage))
Karsten Hopp 40865e
  cb.append('Current window: ' + repr(vim.current.window) + ': ' + H(vim.current.window) + ' is ' + H(vim.current.tabpage.window))
Karsten Hopp 40865e
  cb.append('Current buffer: ' + repr(vim.current.buffer) + ': ' + H(vim.current.buffer) + ' is ' + H(vim.current.window.buffer)+ ' is ' + H(vim.current.tabpage.window.buffer))
Karsten Hopp 40865e
+ del H
Karsten Hopp 40865e
  # Assigning: fails
Karsten Hopp 40865e
  try:
Karsten Hopp 40865e
      vim.current.window = vim.tabpages[0].window
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 646,651 ****
Karsten Hopp 40865e
--- 684,690 ----
Karsten Hopp 40865e
          setattr(vim.current, attr, None)
Karsten Hopp 40865e
      except TypeError:
Karsten Hopp 40865e
          cb.append('Type error at assigning None to vim.current.' + attr)
Karsten Hopp 40865e
+ del attr
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  # Assigning: success
Karsten Hopp 40865e
  vim.current.tabpage = vim.tabpages[-2]
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 661,668 ****
Karsten Hopp 40865e
--- 700,712 ----
Karsten Hopp 40865e
  for b in vim.buffers:
Karsten Hopp 40865e
      if b is not cb:
Karsten Hopp 40865e
          vim.command('bwipeout! ' + str(b.number))
Karsten Hopp 40865e
+ del b
Karsten Hopp 40865e
  cb.append('w.valid: ' + repr([w.valid for w in ws]))
Karsten Hopp 40865e
  cb.append('t.valid: ' + repr([t.valid for t in ts]))
Karsten Hopp 40865e
+ del w
Karsten Hopp 40865e
+ del t
Karsten Hopp 40865e
+ del ts
Karsten Hopp 40865e
+ del ws
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :tabonly!
Karsten Hopp 40865e
  :only!
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 681,686 ****
Karsten Hopp 40865e
--- 725,732 ----
Karsten Hopp 40865e
      ('vim.current.tabpage',              'TabPage'),
Karsten Hopp 40865e
  ):
Karsten Hopp 40865e
      cb.append(expr + ':' + attr + ':' + repr(type(eval(expr)) is getattr(vim, attr)))
Karsten Hopp 40865e
+ del expr
Karsten Hopp 40865e
+ del attr
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test __dir__() method
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 706,720 ****
Karsten Hopp 40865e
  :$put =string(py3eval('vim.Dictionary(a=1)'))
Karsten Hopp 40865e
  :$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))
Karsten Hopp 40865e
  :$put =string(py3eval('vim.List()'))
Karsten Hopp 40865e
! :$put =string(py3eval('vim.List(iter(''abc''))'))
Karsten Hopp 40865e
  :$put =string(py3eval('vim.Function(''tr'')'))
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test stdout/stderr
Karsten Hopp 40865e
  :redir => messages
Karsten Hopp 40865e
! :py3 sys.stdout.write('abc') ; sys.stdout.write('def')
Karsten Hopp 40865e
! :py3 sys.stderr.write('abc') ; sys.stderr.write('def')
Karsten Hopp 40865e
! :py3 sys.stdout.writelines(iter('abc'))
Karsten Hopp 40865e
! :py3 sys.stderr.writelines(iter('abc'))
Karsten Hopp 40865e
  :redir END
Karsten Hopp 40865e
  :$put =string(substitute(messages, '\d\+', '', 'g'))
Karsten Hopp 40865e
  :" Test subclassing
Karsten Hopp 40865e
--- 752,766 ----
Karsten Hopp 40865e
  :$put =string(py3eval('vim.Dictionary(a=1)'))
Karsten Hopp 40865e
  :$put =string(py3eval('vim.Dictionary(((''a'', 1),))'))
Karsten Hopp 40865e
  :$put =string(py3eval('vim.List()'))
Karsten Hopp 40865e
! :$put =string(py3eval('vim.List(iter(''abc7''))'))
Karsten Hopp 40865e
  :$put =string(py3eval('vim.Function(''tr'')'))
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test stdout/stderr
Karsten Hopp 40865e
  :redir => messages
Karsten Hopp 40865e
! :py3 sys.stdout.write('abc8') ; sys.stdout.write('def')
Karsten Hopp 40865e
! :py3 sys.stderr.write('abc9') ; sys.stderr.write('def')
Karsten Hopp 40865e
! :py3 sys.stdout.writelines(iter('abcA'))
Karsten Hopp 40865e
! :py3 sys.stderr.writelines(iter('abcB'))
Karsten Hopp 40865e
  :redir END
Karsten Hopp 40865e
  :$put =string(substitute(messages, '\d\+', '', 'g'))
Karsten Hopp 40865e
  :" Test subclassing
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 735,741 ****
Karsten Hopp 40865e
          return [super(DupList, self).__getitem__(idx)] * 2
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  dl = DupList()
Karsten Hopp 40865e
! dl2 = DupList(iter('abc'))
Karsten Hopp 40865e
  dl.extend(dl2[0])
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  class DupFun(vim.Function):
Karsten Hopp 40865e
--- 781,787 ----
Karsten Hopp 40865e
          return [super(DupList, self).__getitem__(idx)] * 2
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  dl = DupList()
Karsten Hopp 40865e
! dl2 = DupList(iter('abcC'))
Karsten Hopp 40865e
  dl.extend(dl2[0])
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  class DupFun(vim.Function):
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 748,753 ****
Karsten Hopp 40865e
--- 794,812 ----
Karsten Hopp 40865e
  :$put =string(py3eval('dl'))
Karsten Hopp 40865e
  :$put =string(py3eval('dl2'))
Karsten Hopp 40865e
  :$put =string(py3eval('df(2)'))
Karsten Hopp 40865e
+ :$put =string(py3eval('dl') is# py3eval('dl'))
Karsten Hopp 40865e
+ :$put =string(py3eval('dd') is# py3eval('dd'))
Karsten Hopp 40865e
+ :$put =string(py3eval('df'))
Karsten Hopp 40865e
+ :delfunction Put
Karsten Hopp 40865e
+ py3 << EOF
Karsten Hopp 40865e
+ del DupDict
Karsten Hopp 40865e
+ del DupList
Karsten Hopp 40865e
+ del DupFun
Karsten Hopp 40865e
+ del dd
Karsten Hopp 40865e
+ del dl
Karsten Hopp 40865e
+ del dl2
Karsten Hopp 40865e
+ del df
Karsten Hopp 40865e
+ EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test chdir
Karsten Hopp 40865e
  py3 << EOF
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 761,766 ****
Karsten Hopp 40865e
--- 820,826 ----
Karsten Hopp 40865e
  os.chdir('testdir')
Karsten Hopp 40865e
  cb.append(str(fnamemodify('.', ':p:h:t')))
Karsten Hopp 40865e
  cb.append(vim.eval('@%'))
Karsten Hopp 40865e
+ del fnamemodify
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test errors
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 784,794 ****
Karsten Hopp 40865e
          cb.append(expr + '::' + repr((e.__class__, e)))
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  d = vim.Dictionary()
Karsten Hopp 40865e
! ned = vim.Dictionary(foo='bar', baz='abc')
Karsten Hopp 40865e
  dl = vim.Dictionary(a=1)
Karsten Hopp 40865e
  dl.locked = True
Karsten Hopp 40865e
  l = vim.List()
Karsten Hopp 40865e
! ll = vim.List('abc')
Karsten Hopp 40865e
  ll.locked = True
Karsten Hopp 40865e
  f = vim.Function('string')
Karsten Hopp 40865e
  fd = vim.Function('F')
Karsten Hopp 40865e
--- 844,854 ----
Karsten Hopp 40865e
          cb.append(expr + '::' + repr((e.__class__, e)))
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  d = vim.Dictionary()
Karsten Hopp 40865e
! ned = vim.Dictionary(foo='bar', baz='abcD')
Karsten Hopp 40865e
  dl = vim.Dictionary(a=1)
Karsten Hopp 40865e
  dl.locked = True
Karsten Hopp 40865e
  l = vim.List()
Karsten Hopp 40865e
! ll = vim.List('abcE')
Karsten Hopp 40865e
  ll.locked = True
Karsten Hopp 40865e
  f = vim.Function('string')
Karsten Hopp 40865e
  fd = vim.Function('F')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 825,835 ****
Karsten Hopp 40865e
      # pydict_to_tv
Karsten Hopp 40865e
      stringtochars_test(expr % '{%s : 1}')
Karsten Hopp 40865e
      if recurse:
Karsten Hopp 40865e
!         convertfrompyobject_test(expr % '{"abc" : %s}', False)
Karsten Hopp 40865e
      # pymap_to_tv
Karsten Hopp 40865e
      stringtochars_test(expr % 'Mapping({%s : 1})')
Karsten Hopp 40865e
      if recurse:
Karsten Hopp 40865e
!         convertfrompyobject_test(expr % 'Mapping({"abc" : %s})', False)
Karsten Hopp 40865e
      # pyseq_to_tv
Karsten Hopp 40865e
      iter_test(expr)
Karsten Hopp 40865e
      return subexpr_test(expr, 'ConvertFromPyObject', (
Karsten Hopp 40865e
--- 885,895 ----
Karsten Hopp 40865e
      # pydict_to_tv
Karsten Hopp 40865e
      stringtochars_test(expr % '{%s : 1}')
Karsten Hopp 40865e
      if recurse:
Karsten Hopp 40865e
!         convertfrompyobject_test(expr % '{"abcF" : %s}', False)
Karsten Hopp 40865e
      # pymap_to_tv
Karsten Hopp 40865e
      stringtochars_test(expr % 'Mapping({%s : 1})')
Karsten Hopp 40865e
      if recurse:
Karsten Hopp 40865e
!         convertfrompyobject_test(expr % 'Mapping({"abcG" : %s})', False)
Karsten Hopp 40865e
      # pyseq_to_tv
Karsten Hopp 40865e
      iter_test(expr)
Karsten Hopp 40865e
      return subexpr_test(expr, 'ConvertFromPyObject', (
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 872,878 ****
Karsten Hopp 40865e
          raise NotImplementedError
Karsten Hopp 40865e
  
Karsten Hopp 40865e
      def keys(self):
Karsten Hopp 40865e
!         return list("abc")
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  class FailingMapping(object):
Karsten Hopp 40865e
      def __getitem__(self):
Karsten Hopp 40865e
--- 932,938 ----
Karsten Hopp 40865e
          raise NotImplementedError
Karsten Hopp 40865e
  
Karsten Hopp 40865e
      def keys(self):
Karsten Hopp 40865e
!         return list("abcH")
Karsten Hopp 40865e
  
Karsten Hopp 40865e
  class FailingMapping(object):
Karsten Hopp 40865e
      def __getitem__(self):
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 914,920 ****
Karsten Hopp 40865e
  ee('vim.strwidth(1)')
Karsten Hopp 40865e
  cb.append("> Dictionary")
Karsten Hopp 40865e
  cb.append(">> DictionaryConstructor")
Karsten Hopp 40865e
! ee('vim.Dictionary("abc")')
Karsten Hopp 40865e
  ##! Not checked: py_dict_alloc failure
Karsten Hopp 40865e
  cb.append(">> DictionarySetattr")
Karsten Hopp 40865e
  ee('del d.locked')
Karsten Hopp 40865e
--- 974,980 ----
Karsten Hopp 40865e
  ee('vim.strwidth(1)')
Karsten Hopp 40865e
  cb.append("> Dictionary")
Karsten Hopp 40865e
  cb.append(">> DictionaryConstructor")
Karsten Hopp 40865e
! ee('vim.Dictionary("abcI")')
Karsten Hopp 40865e
  ##! Not checked: py_dict_alloc failure
Karsten Hopp 40865e
  cb.append(">> DictionarySetattr")
Karsten Hopp 40865e
  ee('del d.locked')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 929,934 ****
Karsten Hopp 40865e
--- 989,995 ----
Karsten Hopp 40865e
  ee('dl.pop("a")')
Karsten Hopp 40865e
  cb.append(">> DictionaryIterNext")
Karsten Hopp 40865e
  ee('for i in ned: ned["a"] = 1')
Karsten Hopp 40865e
+ del i
Karsten Hopp 40865e
  cb.append(">> DictionaryAssItem")
Karsten Hopp 40865e
  ee('dl["b"] = 1')
Karsten Hopp 40865e
  stringtochars_test('d[%s] = 1')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 958,964 ****
Karsten Hopp 40865e
  ee('ll[1] = 2')
Karsten Hopp 40865e
  ee('l[1000] = 3')
Karsten Hopp 40865e
  cb.append(">> ListAssSlice")
Karsten Hopp 40865e
! ee('ll[1:100] = "abc"')
Karsten Hopp 40865e
  iter_test('l[:] = %s')
Karsten Hopp 40865e
  convertfrompyobject_test('l[:] = [%s]')
Karsten Hopp 40865e
  cb.append(">> ListConcatInPlace")
Karsten Hopp 40865e
--- 1019,1025 ----
Karsten Hopp 40865e
  ee('ll[1] = 2')
Karsten Hopp 40865e
  ee('l[1000] = 3')
Karsten Hopp 40865e
  cb.append(">> ListAssSlice")
Karsten Hopp 40865e
! ee('ll[1:100] = "abcJ"')
Karsten Hopp 40865e
  iter_test('l[:] = %s')
Karsten Hopp 40865e
  convertfrompyobject_test('l[:] = [%s]')
Karsten Hopp 40865e
  cb.append(">> ListConcatInPlace")
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 989,996 ****
Karsten Hopp 40865e
  ee('vim.current.window.buffer = 0')
Karsten Hopp 40865e
  ee('vim.current.window.cursor = (100000000, 100000000)')
Karsten Hopp 40865e
  ee('vim.current.window.cursor = True')
Karsten Hopp 40865e
! ee('vim.current.window.height = "abc"')
Karsten Hopp 40865e
! ee('vim.current.window.width  = "abc"')
Karsten Hopp 40865e
  ee('vim.current.window.xxxxxx = True')
Karsten Hopp 40865e
  cb.append("> WinList")
Karsten Hopp 40865e
  cb.append(">> WinListItem")
Karsten Hopp 40865e
--- 1050,1057 ----
Karsten Hopp 40865e
  ee('vim.current.window.buffer = 0')
Karsten Hopp 40865e
  ee('vim.current.window.cursor = (100000000, 100000000)')
Karsten Hopp 40865e
  ee('vim.current.window.cursor = True')
Karsten Hopp 40865e
! ee('vim.current.window.height = "abcK"')
Karsten Hopp 40865e
! ee('vim.current.window.width  = "abcL"')
Karsten Hopp 40865e
  ee('vim.current.window.xxxxxx = True')
Karsten Hopp 40865e
  cb.append("> WinList")
Karsten Hopp 40865e
  cb.append(">> WinListItem")
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1000,1006 ****
Karsten Hopp 40865e
  ee('vim.current.buffer[0] = "\\na"')
Karsten Hopp 40865e
  cb.append(">> SetBufferLine (indirect)")
Karsten Hopp 40865e
  ee('vim.current.buffer[0] = True')
Karsten Hopp 40865e
! cb.append(">> SetBufferLines (indirect)")
Karsten Hopp 40865e
  ee('vim.current.buffer[:] = True')
Karsten Hopp 40865e
  ee('vim.current.buffer[:] = ["\\na", "bc"]')
Karsten Hopp 40865e
  cb.append(">> InsertBufferLines (indirect)")
Karsten Hopp 40865e
--- 1061,1067 ----
Karsten Hopp 40865e
  ee('vim.current.buffer[0] = "\\na"')
Karsten Hopp 40865e
  cb.append(">> SetBufferLine (indirect)")
Karsten Hopp 40865e
  ee('vim.current.buffer[0] = True')
Karsten Hopp 40865e
! cb.append(">> SetBufferLineList (indirect)")
Karsten Hopp 40865e
  ee('vim.current.buffer[:] = True')
Karsten Hopp 40865e
  ee('vim.current.buffer[:] = ["\\na", "bc"]')
Karsten Hopp 40865e
  cb.append(">> InsertBufferLines (indirect)")
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1018,1024 ****
Karsten Hopp 40865e
  ee('vim.current.buffer.xxx = True')
Karsten Hopp 40865e
  cb.append(">> BufferMark")
Karsten Hopp 40865e
  ee('vim.current.buffer.mark(0)')
Karsten Hopp 40865e
! ee('vim.current.buffer.mark("abc")')
Karsten Hopp 40865e
  ee('vim.current.buffer.mark("!")')
Karsten Hopp 40865e
  cb.append(">> BufferRange")
Karsten Hopp 40865e
  ee('vim.current.buffer.range(1, 2, 3)')
Karsten Hopp 40865e
--- 1079,1085 ----
Karsten Hopp 40865e
  ee('vim.current.buffer.xxx = True')
Karsten Hopp 40865e
  cb.append(">> BufferMark")
Karsten Hopp 40865e
  ee('vim.current.buffer.mark(0)')
Karsten Hopp 40865e
! ee('vim.current.buffer.mark("abcM")')
Karsten Hopp 40865e
  ee('vim.current.buffer.mark("!")')
Karsten Hopp 40865e
  cb.append(">> BufferRange")
Karsten Hopp 40865e
  ee('vim.current.buffer.range(1, 2, 3)')
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1035,1041 ****
Karsten Hopp 40865e
--- 1096,1123 ----
Karsten Hopp 40865e
  ee('vim.current.window = True')
Karsten Hopp 40865e
  ee('vim.current.tabpage = True')
Karsten Hopp 40865e
  ee('vim.current.xxx = True')
Karsten Hopp 40865e
+ del d
Karsten Hopp 40865e
+ del ned
Karsten Hopp 40865e
+ del dl
Karsten Hopp 40865e
+ del l
Karsten Hopp 40865e
+ del ll
Karsten Hopp 40865e
+ del f
Karsten Hopp 40865e
+ del fd
Karsten Hopp 40865e
+ del fdel
Karsten Hopp 40865e
+ del subexpr_test
Karsten Hopp 40865e
+ del stringtochars_test
Karsten Hopp 40865e
+ del Mapping
Karsten Hopp 40865e
+ del convertfrompyobject_test
Karsten Hopp 40865e
+ del convertfrompymapping_test
Karsten Hopp 40865e
+ del iter_test
Karsten Hopp 40865e
+ del FailingTrue
Karsten Hopp 40865e
+ del FailingIter
Karsten Hopp 40865e
+ del FailingIterNext
Karsten Hopp 40865e
+ del FailingMapping
Karsten Hopp 40865e
+ del FailingMappingKey
Karsten Hopp 40865e
+ del FailingList
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
+ :delfunction F
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test import
Karsten Hopp 40865e
  py3 << EOF
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1049,1054 ****
Karsten Hopp 40865e
--- 1131,1140 ----
Karsten Hopp 40865e
  cb.append(before.dir)
Karsten Hopp 40865e
  import after
Karsten Hopp 40865e
  cb.append(after.dir)
Karsten Hopp 40865e
+ del before
Karsten Hopp 40865e
+ del after
Karsten Hopp 40865e
+ del d
Karsten Hopp 40865e
+ del ddir
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :" Test exceptions
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1057,1074 ****
Karsten Hopp 40865e
  :endfun
Karsten Hopp 40865e
  py3 << EOF
Karsten Hopp 40865e
  Exe = vim.bindeval('function("Exe")')
Karsten Hopp 40865e
! ee('vim.command("throw \'abc\'")')
Karsten Hopp 40865e
  ee('Exe("throw \'def\'")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
Karsten Hopp 40865e
  ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :endfun
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
! :call Test()
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
! :delfunc Test
Karsten Hopp 40865e
  :call garbagecollect(1)
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :/^start:/,$wq! test.out
Karsten Hopp 40865e
--- 1143,1190 ----
Karsten Hopp 40865e
  :endfun
Karsten Hopp 40865e
  py3 << EOF
Karsten Hopp 40865e
  Exe = vim.bindeval('function("Exe")')
Karsten Hopp 40865e
! ee('vim.command("throw \'abcN\'")')
Karsten Hopp 40865e
  ee('Exe("throw \'def\'")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
Karsten Hopp 40865e
  ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
Karsten Hopp 40865e
  ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
Karsten Hopp 40865e
+ del Exe
Karsten Hopp 40865e
+ EOF
Karsten Hopp 40865e
+ :delfunction Exe
Karsten Hopp 40865e
+ :"
Karsten Hopp 40865e
+ :" Cleanup
Karsten Hopp 40865e
+ py3 << EOF
Karsten Hopp 40865e
+ del cb
Karsten Hopp 40865e
+ del ee
Karsten Hopp 40865e
+ del sys
Karsten Hopp 40865e
+ del os
Karsten Hopp 40865e
+ del vim
Karsten Hopp 40865e
  EOF
Karsten Hopp 40865e
  :endfun
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
! :fun RunTest()
Karsten Hopp 40865e
! :let checkrefs = !empty($PYTHONDUMPREFS)
Karsten Hopp 40865e
! :let start = getline(1, '$')
Karsten Hopp 40865e
! :for i in range(checkrefs ? 10 : 1)
Karsten Hopp 40865e
! :   if i != 0
Karsten Hopp 40865e
! :       %d _
Karsten Hopp 40865e
! :       call setline(1, start)
Karsten Hopp 40865e
! :   endif
Karsten Hopp 40865e
! :   call Test()
Karsten Hopp 40865e
! :   if i == 0
Karsten Hopp 40865e
! :       let result = getline(1, '$')
Karsten Hopp 40865e
! :   endif
Karsten Hopp 40865e
! :endfor
Karsten Hopp 40865e
! :if checkrefs
Karsten Hopp 40865e
! :   %d _
Karsten Hopp 40865e
! :   call setline(1, result)
Karsten Hopp 40865e
! :endif
Karsten Hopp 40865e
! :endfun
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
! :call RunTest()
Karsten Hopp 40865e
! :delfunction RunTest
Karsten Hopp 40865e
! :delfunction Test
Karsten Hopp 40865e
  :call garbagecollect(1)
Karsten Hopp 40865e
  :"
Karsten Hopp 40865e
  :/^start:/,$wq! test.out
Karsten Hopp 40865e
*** ../vim-7.3.1232/src/testdir/test87.ok	2013-06-23 14:16:53.000000000 +0200
Karsten Hopp 40865e
--- src/testdir/test87.ok	2013-06-23 14:34:17.000000000 +0200
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 68,74 ****
Karsten Hopp 40865e
  dl : locked:1;scope:0
Karsten Hopp 40865e
  v: : locked:2;scope:1
Karsten Hopp 40865e
  g: : locked:0;scope:2
Karsten Hopp 40865e
! d:{'abc': 1}
Karsten Hopp 40865e
  dl:{'def': 1}
Karsten Hopp 40865e
  l : locked:0
Karsten Hopp 40865e
  ll : locked:1
Karsten Hopp 40865e
--- 68,74 ----
Karsten Hopp 40865e
  dl : locked:1;scope:0
Karsten Hopp 40865e
  v: : locked:2;scope:1
Karsten Hopp 40865e
  g: : locked:0;scope:2
Karsten Hopp 40865e
! d:{'abc2': 1}
Karsten Hopp 40865e
  dl:{'def': 1}
Karsten Hopp 40865e
  l : locked:0
Karsten Hopp 40865e
  ll : locked:1
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 191,202 ****
Karsten Hopp 40865e
    B: 1:3 2:5 3:2 4:8
Karsten Hopp 40865e
  >>> colorcolumn
Karsten Hopp 40865e
    p/gopts1! KeyError
Karsten Hopp 40865e
!   inv: 'abc'! KeyError
Karsten Hopp 40865e
    gopts1! KeyError
Karsten Hopp 40865e
    p/wopts1: b''
Karsten Hopp 40865e
!   inv: 'abc'! error
Karsten Hopp 40865e
    p/bopts1! KeyError
Karsten Hopp 40865e
!   inv: 'abc'! KeyError
Karsten Hopp 40865e
    bopts1! KeyError
Karsten Hopp 40865e
    bopts2! KeyError
Karsten Hopp 40865e
    bopts3! KeyError
Karsten Hopp 40865e
--- 191,202 ----
Karsten Hopp 40865e
    B: 1:3 2:5 3:2 4:8
Karsten Hopp 40865e
  >>> colorcolumn
Karsten Hopp 40865e
    p/gopts1! KeyError
Karsten Hopp 40865e
!   inv: 'abc4'! KeyError
Karsten Hopp 40865e
    gopts1! KeyError
Karsten Hopp 40865e
    p/wopts1: b''
Karsten Hopp 40865e
!   inv: 'abc4'! error
Karsten Hopp 40865e
    p/bopts1! KeyError
Karsten Hopp 40865e
!   inv: 'abc4'! KeyError
Karsten Hopp 40865e
    bopts1! KeyError
Karsten Hopp 40865e
    bopts2! KeyError
Karsten Hopp 40865e
    bopts3! KeyError
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 404,423 ****
Karsten Hopp 40865e
  {'a': 1}
Karsten Hopp 40865e
  {'a': 1}
Karsten Hopp 40865e
  []
Karsten Hopp 40865e
! ['a', 'b', 'c']
Karsten Hopp 40865e
  function('tr')
Karsten Hopp 40865e
  '
Karsten Hopp 40865e
  abcdef
Karsten Hopp 40865e
  line  :
Karsten Hopp 40865e
  abcdef
Karsten Hopp 40865e
! abc
Karsten Hopp 40865e
  line  :
Karsten Hopp 40865e
! abc'
Karsten Hopp 40865e
  ['a', 'dup_a']
Karsten Hopp 40865e
  ['a', 'a']
Karsten Hopp 40865e
! ['a', 'b', 'c']
Karsten Hopp 40865e
  [2, 2]
Karsten Hopp 40865e
  [2, 2]
Karsten Hopp 40865e
  b'testdir'
Karsten Hopp 40865e
  test87.in
Karsten Hopp 40865e
  b'src'
Karsten Hopp 40865e
--- 404,426 ----
Karsten Hopp 40865e
  {'a': 1}
Karsten Hopp 40865e
  {'a': 1}
Karsten Hopp 40865e
  []
Karsten Hopp 40865e
! ['a', 'b', 'c', '7']
Karsten Hopp 40865e
  function('tr')
Karsten Hopp 40865e
  '
Karsten Hopp 40865e
  abcdef
Karsten Hopp 40865e
  line  :
Karsten Hopp 40865e
  abcdef
Karsten Hopp 40865e
! abcA
Karsten Hopp 40865e
  line  :
Karsten Hopp 40865e
! abcB'
Karsten Hopp 40865e
  ['a', 'dup_a']
Karsten Hopp 40865e
  ['a', 'a']
Karsten Hopp 40865e
! ['a', 'b', 'c', 'C']
Karsten Hopp 40865e
  [2, 2]
Karsten Hopp 40865e
  [2, 2]
Karsten Hopp 40865e
+ 1
Karsten Hopp 40865e
+ 1
Karsten Hopp 40865e
+ function('Put')
Karsten Hopp 40865e
  b'testdir'
Karsten Hopp 40865e
  test87.in
Karsten Hopp 40865e
  b'src'
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 449,455 ****
Karsten Hopp 40865e
  vim.strwidth(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  > Dictionary
Karsten Hopp 40865e
  >> DictionaryConstructor
Karsten Hopp 40865e
! vim.Dictionary("abc"):(<class 'ValueError'>, ValueError('expected sequence element of size 2, but got sequence of size 1',))
Karsten Hopp 40865e
  >> DictionarySetattr
Karsten Hopp 40865e
  del d.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.Dictionary attributes',))
Karsten Hopp 40865e
  d.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
--- 452,458 ----
Karsten Hopp 40865e
  vim.strwidth(1):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  > Dictionary
Karsten Hopp 40865e
  >> DictionaryConstructor
Karsten Hopp 40865e
! vim.Dictionary("abcI"):(<class 'ValueError'>, ValueError('expected sequence element of size 2, but got sequence of size 1',))
Karsten Hopp 40865e
  >> DictionarySetattr
Karsten Hopp 40865e
  del d.locked:(<class 'AttributeError'>, AttributeError('cannot delete vim.Dictionary attributes',))
Karsten Hopp 40865e
  d.locked = FailingTrue():(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 479,530 ****
Karsten Hopp 40865e
  d["a"] = {b"\0" : 1}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d["a"] = {"\0" : 1}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = {"abc" : {%s : 1}}
Karsten Hopp 40865e
! d["a"] = {"abc" : {1 : 1}}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d["a"] = {"abc" : {b"\0" : 1}}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d["a"] = {"abc" : {"\0" : 1}}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = {"abc" : Mapping({%s : 1})}
Karsten Hopp 40865e
! d["a"] = {"abc" : Mapping({1 : 1})}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d["a"] = {"abc" : Mapping({b"\0" : 1})}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d["a"] = {"abc" : Mapping({"\0" : 1})}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d["a"] = {"abc" : %s}
Karsten Hopp 40865e
! d["a"] = {"abc" : FailingIter()}:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d["a"] = {"abc" : FailingIterNext()}:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d["a"] = {"abc" : %s}
Karsten Hopp 40865e
! d["a"] = {"abc" : None}:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d["a"] = {"abc" : {b"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d["a"] = {"abc" : {"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d["a"] = {"abc" : FailingMapping()}:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d["a"] = {"abc" : FailingMappingKey()}:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d["a"] = Mapping({%s : 1})
Karsten Hopp 40865e
  d["a"] = Mapping({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  d["a"] = Mapping({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d["a"] = Mapping({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = Mapping({"abc" : {%s : 1}})
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = Mapping({"abc" : Mapping({%s : 1})})
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d["a"] = Mapping({"abc" : %s})
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abc" : %s})
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d["a"] = Mapping({"abc" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d["a"] = %s
Karsten Hopp 40865e
  d["a"] = FailingIter():(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
--- 482,533 ----
Karsten Hopp 40865e
  d["a"] = {b"\0" : 1}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d["a"] = {"\0" : 1}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = {"abcF" : {%s : 1}}
Karsten Hopp 40865e
! d["a"] = {"abcF" : {1 : 1}}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d["a"] = {"abcF" : {b"\0" : 1}}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d["a"] = {"abcF" : {"\0" : 1}}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = {"abcF" : Mapping({%s : 1})}
Karsten Hopp 40865e
! d["a"] = {"abcF" : Mapping({1 : 1})}:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d["a"] = {"abcF" : Mapping({b"\0" : 1})}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d["a"] = {"abcF" : Mapping({"\0" : 1})}:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d["a"] = {"abcF" : %s}
Karsten Hopp 40865e
! d["a"] = {"abcF" : FailingIter()}:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d["a"] = {"abcF" : FailingIterNext()}:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d["a"] = {"abcF" : %s}
Karsten Hopp 40865e
! d["a"] = {"abcF" : None}:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d["a"] = {"abcF" : {b"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d["a"] = {"abcF" : {"": 1}}:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d["a"] = {"abcF" : FailingMapping()}:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d["a"] = {"abcF" : FailingMappingKey()}:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d["a"] = Mapping({%s : 1})
Karsten Hopp 40865e
  d["a"] = Mapping({1 : 1}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  d["a"] = Mapping({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d["a"] = Mapping({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = Mapping({"abcG" : {%s : 1}})
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d["a"] = Mapping({"abcG" : Mapping({%s : 1})})
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d["a"] = Mapping({"abcG" : %s})
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d["a"] = Mapping({"abcG" : %s})
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d["a"] = Mapping({"abcG" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d["a"] = %s
Karsten Hopp 40865e
  d["a"] = FailingIter():(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 551,602 ****
Karsten Hopp 40865e
  d.update({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d.update({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update({"abc" : {%s : 1}})
Karsten Hopp 40865e
! d.update({"abc" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update({"abc" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update({"abc" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update({"abc" : Mapping({%s : 1})})
Karsten Hopp 40865e
! d.update({"abc" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update({"abc" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update({"abc" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update({"abc" : %s})
Karsten Hopp 40865e
! d.update({"abc" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d.update({"abc" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update({"abc" : %s})
Karsten Hopp 40865e
! d.update({"abc" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d.update({"abc" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update({"abc" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update({"abc" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d.update({"abc" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d.update(Mapping({%s : 1}))
Karsten Hopp 40865e
  d.update(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  d.update(Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d.update(Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update(Mapping({"abc" : {%s : 1}}))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update(Mapping({"abc" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update(Mapping({"abc" : %s}))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update(Mapping({"abc" : %s}))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update(Mapping({"abc" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d.update(Mapping({"abc" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d.update(%s)
Karsten Hopp 40865e
  d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
--- 554,605 ----
Karsten Hopp 40865e
  d.update({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d.update({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update({"abcF" : {%s : 1}})
Karsten Hopp 40865e
! d.update({"abcF" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update({"abcF" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update({"abcF" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update({"abcF" : Mapping({%s : 1})})
Karsten Hopp 40865e
! d.update({"abcF" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update({"abcF" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update({"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update({"abcF" : %s})
Karsten Hopp 40865e
! d.update({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d.update({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update({"abcF" : %s})
Karsten Hopp 40865e
! d.update({"abcF" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d.update({"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update({"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d.update({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d.update(Mapping({%s : 1}))
Karsten Hopp 40865e
  d.update(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  d.update(Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d.update(Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update(Mapping({"abcG" : {%s : 1}}))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update(Mapping({"abcG" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update(Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update(Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d.update(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d.update(%s)
Karsten Hopp 40865e
  d.update(FailingIter()):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 619,670 ****
Karsten Hopp 40865e
  d.update((("a", {b"\0" : 1}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d.update((("a", {"\0" : 1}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", {"abc" : {%s : 1}}),))
Karsten Hopp 40865e
! d.update((("a", {"abc" : {1 : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update((("a", {"abc" : {b"\0" : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update((("a", {"abc" : {"\0" : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", {"abc" : Mapping({%s : 1})}),))
Karsten Hopp 40865e
! d.update((("a", {"abc" : Mapping({1 : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update((("a", {"abc" : Mapping({b"\0" : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update((("a", {"abc" : Mapping({"\0" : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update((("a", {"abc" : %s}),))
Karsten Hopp 40865e
! d.update((("a", {"abc" : FailingIter()}),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d.update((("a", {"abc" : FailingIterNext()}),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update((("a", {"abc" : %s}),))
Karsten Hopp 40865e
! d.update((("a", {"abc" : None}),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d.update((("a", {"abc" : {b"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update((("a", {"abc" : {"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update((("a", {"abc" : FailingMapping()}),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d.update((("a", {"abc" : FailingMappingKey()}),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),))
Karsten Hopp 40865e
  d.update((("a", Mapping({1 : 1})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  d.update((("a", Mapping({b"\0" : 1})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d.update((("a", Mapping({"\0" : 1})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", Mapping({"abc" : {%s : 1}})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {1 : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {b"\0" : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {"\0" : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", Mapping({"abc" : Mapping({%s : 1})})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : Mapping({1 : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : Mapping({b"\0" : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : Mapping({"\0" : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update((("a", Mapping({"abc" : %s})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : FailingIter()})),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : FailingIterNext()})),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abc" : %s})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : None})),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {b"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : {"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : FailingMapping()})),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d.update((("a", Mapping({"abc" : FailingMappingKey()})),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d.update((("a", %s),))
Karsten Hopp 40865e
  d.update((("a", FailingIter()),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
--- 622,673 ----
Karsten Hopp 40865e
  d.update((("a", {b"\0" : 1}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d.update((("a", {"\0" : 1}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", {"abcF" : {%s : 1}}),))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {1 : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {b"\0" : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {"\0" : 1}}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", {"abcF" : Mapping({%s : 1})}),))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : Mapping({1 : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : Mapping({b"\0" : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : Mapping({"\0" : 1})}),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update((("a", {"abcF" : %s}),))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : FailingIter()}),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : FailingIterNext()}),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update((("a", {"abcF" : %s}),))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : None}),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {b"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : {"": 1}}),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update((("a", {"abcF" : FailingMapping()}),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d.update((("a", {"abcF" : FailingMappingKey()}),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using d.update((("a", Mapping({%s : 1})),))
Karsten Hopp 40865e
  d.update((("a", Mapping({1 : 1})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  d.update((("a", Mapping({b"\0" : 1})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  d.update((("a", Mapping({"\0" : 1})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", Mapping({"abcG" : {%s : 1}})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {1 : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {b"\0" : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {"\0" : 1}})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using d.update((("a", Mapping({"abcG" : Mapping({%s : 1})})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : Mapping({1 : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : Mapping({b"\0" : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : Mapping({"\0" : 1})})),)):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using d.update((("a", Mapping({"abcG" : %s})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : FailingIter()})),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : FailingIterNext()})),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using d.update((("a", Mapping({"abcG" : %s})),))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : None})),)):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {b"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : {"": 1}})),)):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : FailingMapping()})),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! d.update((("a", Mapping({"abcG" : FailingMappingKey()})),)):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using d.update((("a", %s),))
Karsten Hopp 40865e
  d.update((("a", FailingIter()),)):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 694,745 ****
Karsten Hopp 40865e
  vim.List([{b"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  vim.List([{"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([{"abc" : {%s : 1}}])
Karsten Hopp 40865e
! vim.List([{"abc" : {1 : 1}}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.List([{"abc" : {b"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! vim.List([{"abc" : {"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([{"abc" : Mapping({%s : 1})}])
Karsten Hopp 40865e
! vim.List([{"abc" : Mapping({1 : 1})}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.List([{"abc" : Mapping({b"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! vim.List([{"abc" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using vim.List([{"abc" : %s}])
Karsten Hopp 40865e
! vim.List([{"abc" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! vim.List([{"abc" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using vim.List([{"abc" : %s}])
Karsten Hopp 40865e
! vim.List([{"abc" : None}]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! vim.List([{"abc" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! vim.List([{"abc" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! vim.List([{"abc" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! vim.List([{"abc" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using vim.List([Mapping({%s : 1})])
Karsten Hopp 40865e
  vim.List([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  vim.List([Mapping({b"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  vim.List([Mapping({"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([Mapping({"abc" : {%s : 1}})])
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {1 : 1}})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {b"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([Mapping({"abc" : Mapping({%s : 1})})])
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : Mapping({1 : 1})})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : Mapping({b"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using vim.List([Mapping({"abc" : %s})])
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using vim.List([Mapping({"abc" : %s})])
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : None})]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! vim.List([Mapping({"abc" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using vim.List([%s])
Karsten Hopp 40865e
  vim.List([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
--- 697,748 ----
Karsten Hopp 40865e
  vim.List([{b"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  vim.List([{"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([{"abcF" : {%s : 1}}])
Karsten Hopp 40865e
! vim.List([{"abcF" : {1 : 1}}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.List([{"abcF" : {b"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! vim.List([{"abcF" : {"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([{"abcF" : Mapping({%s : 1})}])
Karsten Hopp 40865e
! vim.List([{"abcF" : Mapping({1 : 1})}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.List([{"abcF" : Mapping({b"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! vim.List([{"abcF" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using vim.List([{"abcF" : %s}])
Karsten Hopp 40865e
! vim.List([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! vim.List([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using vim.List([{"abcF" : %s}])
Karsten Hopp 40865e
! vim.List([{"abcF" : None}]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! vim.List([{"abcF" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! vim.List([{"abcF" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! vim.List([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! vim.List([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using vim.List([Mapping({%s : 1})])
Karsten Hopp 40865e
  vim.List([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  vim.List([Mapping({b"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  vim.List([Mapping({"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([Mapping({"abcG" : {%s : 1}})])
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {1 : 1}})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {b"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using vim.List([Mapping({"abcG" : Mapping({%s : 1})})])
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : Mapping({1 : 1})})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : Mapping({b"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using vim.List([Mapping({"abcG" : %s})])
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using vim.List([Mapping({"abcG" : %s})])
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : None})]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! vim.List([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using vim.List([%s])
Karsten Hopp 40865e
  vim.List([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 758,764 ****
Karsten Hopp 40865e
  ll[1] = 2:(<class 'vim.error'>, error('list is locked',))
Karsten Hopp 40865e
  l[1000] = 3:(<class 'IndexError'>, IndexError('list index out of range',))
Karsten Hopp 40865e
  >> ListAssSlice
Karsten Hopp 40865e
! ll[1:100] = "abc":(<class 'vim.error'>, error('list is locked',))
Karsten Hopp 40865e
  >>> Testing *Iter* using l[:] = %s
Karsten Hopp 40865e
  l[:] = FailingIter():(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  l[:] = FailingIterNext()::(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
--- 761,767 ----
Karsten Hopp 40865e
  ll[1] = 2:(<class 'vim.error'>, error('list is locked',))
Karsten Hopp 40865e
  l[1000] = 3:(<class 'IndexError'>, IndexError('list index out of range',))
Karsten Hopp 40865e
  >> ListAssSlice
Karsten Hopp 40865e
! ll[1:100] = "abcJ":(<class 'vim.error'>, error('list is locked',))
Karsten Hopp 40865e
  >>> Testing *Iter* using l[:] = %s
Karsten Hopp 40865e
  l[:] = FailingIter():(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  l[:] = FailingIterNext()::(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 768,819 ****
Karsten Hopp 40865e
  l[:] = [{b"\0" : 1}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  l[:] = [{"\0" : 1}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [{"abc" : {%s : 1}}]
Karsten Hopp 40865e
! l[:] = [{"abc" : {1 : 1}}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l[:] = [{"abc" : {b"\0" : 1}}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l[:] = [{"abc" : {"\0" : 1}}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [{"abc" : Mapping({%s : 1})}]
Karsten Hopp 40865e
! l[:] = [{"abc" : Mapping({1 : 1})}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l[:] = [{"abc" : Mapping({b"\0" : 1})}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l[:] = [{"abc" : Mapping({"\0" : 1})}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l[:] = [{"abc" : %s}]
Karsten Hopp 40865e
! l[:] = [{"abc" : FailingIter()}]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! l[:] = [{"abc" : FailingIterNext()}]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l[:] = [{"abc" : %s}]
Karsten Hopp 40865e
! l[:] = [{"abc" : None}]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! l[:] = [{"abc" : {b"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l[:] = [{"abc" : {"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l[:] = [{"abc" : FailingMapping()}]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! l[:] = [{"abc" : FailingMappingKey()}]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using l[:] = [Mapping({%s : 1})]
Karsten Hopp 40865e
  l[:] = [Mapping({1 : 1})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  l[:] = [Mapping({b"\0" : 1})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  l[:] = [Mapping({"\0" : 1})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [Mapping({"abc" : {%s : 1}})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {1 : 1}})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {b"\0" : 1}})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {"\0" : 1}})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [Mapping({"abc" : Mapping({%s : 1})})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : Mapping({1 : 1})})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : Mapping({b"\0" : 1})})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : Mapping({"\0" : 1})})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l[:] = [Mapping({"abc" : %s})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : FailingIter()})]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : FailingIterNext()})]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abc" : %s})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : None})]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {b"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : {"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : FailingMapping()})]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! l[:] = [Mapping({"abc" : FailingMappingKey()})]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using l[:] = [%s]
Karsten Hopp 40865e
  l[:] = [FailingIter()]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
--- 771,822 ----
Karsten Hopp 40865e
  l[:] = [{b"\0" : 1}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  l[:] = [{"\0" : 1}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [{"abcF" : {%s : 1}}]
Karsten Hopp 40865e
! l[:] = [{"abcF" : {1 : 1}}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l[:] = [{"abcF" : {b"\0" : 1}}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l[:] = [{"abcF" : {"\0" : 1}}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [{"abcF" : Mapping({%s : 1})}]
Karsten Hopp 40865e
! l[:] = [{"abcF" : Mapping({1 : 1})}]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l[:] = [{"abcF" : Mapping({b"\0" : 1})}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l[:] = [{"abcF" : Mapping({"\0" : 1})}]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l[:] = [{"abcF" : %s}]
Karsten Hopp 40865e
! l[:] = [{"abcF" : FailingIter()}]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! l[:] = [{"abcF" : FailingIterNext()}]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l[:] = [{"abcF" : %s}]
Karsten Hopp 40865e
! l[:] = [{"abcF" : None}]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! l[:] = [{"abcF" : {b"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l[:] = [{"abcF" : {"": 1}}]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l[:] = [{"abcF" : FailingMapping()}]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! l[:] = [{"abcF" : FailingMappingKey()}]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using l[:] = [Mapping({%s : 1})]
Karsten Hopp 40865e
  l[:] = [Mapping({1 : 1})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  l[:] = [Mapping({b"\0" : 1})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  l[:] = [Mapping({"\0" : 1})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [Mapping({"abcG" : {%s : 1}})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {1 : 1}})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {b"\0" : 1}})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {"\0" : 1}})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l[:] = [Mapping({"abcG" : Mapping({%s : 1})})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : Mapping({1 : 1})})]:(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : Mapping({b"\0" : 1})})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : Mapping({"\0" : 1})})]:(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l[:] = [Mapping({"abcG" : %s})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : FailingIter()})]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : FailingIterNext()})]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l[:] = [Mapping({"abcG" : %s})]
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : None})]:(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {b"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : {"": 1}})]:(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : FailingMapping()})]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! l[:] = [Mapping({"abcG" : FailingMappingKey()})]:(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using l[:] = [%s]
Karsten Hopp 40865e
  l[:] = [FailingIter()]:(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 836,887 ****
Karsten Hopp 40865e
  l.extend([{b"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  l.extend([{"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([{"abc" : {%s : 1}}])
Karsten Hopp 40865e
! l.extend([{"abc" : {1 : 1}}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l.extend([{"abc" : {b"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l.extend([{"abc" : {"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([{"abc" : Mapping({%s : 1})}])
Karsten Hopp 40865e
! l.extend([{"abc" : Mapping({1 : 1})}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l.extend([{"abc" : Mapping({b"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l.extend([{"abc" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l.extend([{"abc" : %s}])
Karsten Hopp 40865e
! l.extend([{"abc" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! l.extend([{"abc" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l.extend([{"abc" : %s}])
Karsten Hopp 40865e
! l.extend([{"abc" : None}]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! l.extend([{"abc" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l.extend([{"abc" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l.extend([{"abc" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! l.extend([{"abc" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using l.extend([Mapping({%s : 1})])
Karsten Hopp 40865e
  l.extend([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  l.extend([Mapping({b"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  l.extend([Mapping({"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([Mapping({"abc" : {%s : 1}})])
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {1 : 1}})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {b"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([Mapping({"abc" : Mapping({%s : 1})})])
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : Mapping({1 : 1})})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : Mapping({b"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l.extend([Mapping({"abc" : %s})])
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l.extend([Mapping({"abc" : %s})])
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : None})]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! l.extend([Mapping({"abc" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using l.extend([%s])
Karsten Hopp 40865e
  l.extend([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
--- 839,890 ----
Karsten Hopp 40865e
  l.extend([{b"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  l.extend([{"\0" : 1}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([{"abcF" : {%s : 1}}])
Karsten Hopp 40865e
! l.extend([{"abcF" : {1 : 1}}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l.extend([{"abcF" : {b"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l.extend([{"abcF" : {"\0" : 1}}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([{"abcF" : Mapping({%s : 1})}])
Karsten Hopp 40865e
! l.extend([{"abcF" : Mapping({1 : 1})}]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l.extend([{"abcF" : Mapping({b"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l.extend([{"abcF" : Mapping({"\0" : 1})}]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l.extend([{"abcF" : %s}])
Karsten Hopp 40865e
! l.extend([{"abcF" : FailingIter()}]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! l.extend([{"abcF" : FailingIterNext()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l.extend([{"abcF" : %s}])
Karsten Hopp 40865e
! l.extend([{"abcF" : None}]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! l.extend([{"abcF" : {b"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l.extend([{"abcF" : {"": 1}}]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l.extend([{"abcF" : FailingMapping()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! l.extend([{"abcF" : FailingMappingKey()}]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using l.extend([Mapping({%s : 1})])
Karsten Hopp 40865e
  l.extend([Mapping({1 : 1})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  l.extend([Mapping({b"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  l.extend([Mapping({"\0" : 1})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([Mapping({"abcG" : {%s : 1}})])
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {1 : 1}})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {b"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {"\0" : 1}})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using l.extend([Mapping({"abcG" : Mapping({%s : 1})})])
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : Mapping({1 : 1})})]):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : Mapping({b"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : Mapping({"\0" : 1})})]):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using l.extend([Mapping({"abcG" : %s})])
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : FailingIter()})]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : FailingIterNext()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using l.extend([Mapping({"abcG" : %s})])
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : None})]):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {b"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : {"": 1}})]):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : FailingMapping()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! l.extend([Mapping({"abcG" : FailingMappingKey()})]):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using l.extend([%s])
Karsten Hopp 40865e
  l.extend([FailingIter()]):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 909,960 ****
Karsten Hopp 40865e
  f({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  f({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f({"abc" : {%s : 1}})
Karsten Hopp 40865e
! f({"abc" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! f({"abc" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! f({"abc" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f({"abc" : Mapping({%s : 1})})
Karsten Hopp 40865e
! f({"abc" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! f({"abc" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! f({"abc" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using f({"abc" : %s})
Karsten Hopp 40865e
! f({"abc" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! f({"abc" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using f({"abc" : %s})
Karsten Hopp 40865e
! f({"abc" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! f({"abc" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! f({"abc" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! f({"abc" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! f({"abc" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using f(Mapping({%s : 1}))
Karsten Hopp 40865e
  f(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  f(Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  f(Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f(Mapping({"abc" : {%s : 1}}))
Karsten Hopp 40865e
! f(Mapping({"abc" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! f(Mapping({"abc" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! f(Mapping({"abc" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f(Mapping({"abc" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! f(Mapping({"abc" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! f(Mapping({"abc" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! f(Mapping({"abc" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using f(Mapping({"abc" : %s}))
Karsten Hopp 40865e
! f(Mapping({"abc" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! f(Mapping({"abc" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using f(Mapping({"abc" : %s}))
Karsten Hopp 40865e
! f(Mapping({"abc" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! f(Mapping({"abc" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! f(Mapping({"abc" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! f(Mapping({"abc" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! f(Mapping({"abc" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using f(%s)
Karsten Hopp 40865e
  f(FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
--- 912,963 ----
Karsten Hopp 40865e
  f({b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  f({"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f({"abcF" : {%s : 1}})
Karsten Hopp 40865e
! f({"abcF" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! f({"abcF" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! f({"abcF" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f({"abcF" : Mapping({%s : 1})})
Karsten Hopp 40865e
! f({"abcF" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! f({"abcF" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! f({"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using f({"abcF" : %s})
Karsten Hopp 40865e
! f({"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! f({"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using f({"abcF" : %s})
Karsten Hopp 40865e
! f({"abcF" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! f({"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! f({"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! f({"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! f({"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using f(Mapping({%s : 1}))
Karsten Hopp 40865e
  f(Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  f(Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  f(Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f(Mapping({"abcG" : {%s : 1}}))
Karsten Hopp 40865e
! f(Mapping({"abcG" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! f(Mapping({"abcG" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! f(Mapping({"abcG" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using f(Mapping({"abcG" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! f(Mapping({"abcG" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! f(Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! f(Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using f(Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! f(Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! f(Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using f(Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! f(Mapping({"abcG" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! f(Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! f(Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! f(Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! f(Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using f(%s)
Karsten Hopp 40865e
  f(FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 972,1023 ****
Karsten Hopp 40865e
  fd(self={b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  fd(self={"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self={"abc" : {%s : 1}})
Karsten Hopp 40865e
! fd(self={"abc" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! fd(self={"abc" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! fd(self={"abc" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self={"abc" : Mapping({%s : 1})})
Karsten Hopp 40865e
! fd(self={"abc" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! fd(self={"abc" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! fd(self={"abc" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using fd(self={"abc" : %s})
Karsten Hopp 40865e
! fd(self={"abc" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! fd(self={"abc" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using fd(self={"abc" : %s})
Karsten Hopp 40865e
! fd(self={"abc" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! fd(self={"abc" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! fd(self={"abc" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! fd(self={"abc" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! fd(self={"abc" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using fd(self=Mapping({%s : 1}))
Karsten Hopp 40865e
  fd(self=Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  fd(self=Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  fd(self=Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self=Mapping({"abc" : {%s : 1}}))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self=Mapping({"abc" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using fd(self=Mapping({"abc" : %s}))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using fd(self=Mapping({"abc" : %s}))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! fd(self=Mapping({"abc" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using fd(self=%s)
Karsten Hopp 40865e
  fd(self=FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim dictionary',))
Karsten Hopp 40865e
--- 975,1026 ----
Karsten Hopp 40865e
  fd(self={b"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  fd(self={"\0" : 1}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self={"abcF" : {%s : 1}})
Karsten Hopp 40865e
! fd(self={"abcF" : {1 : 1}}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! fd(self={"abcF" : {b"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! fd(self={"abcF" : {"\0" : 1}}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self={"abcF" : Mapping({%s : 1})})
Karsten Hopp 40865e
! fd(self={"abcF" : Mapping({1 : 1})}):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! fd(self={"abcF" : Mapping({b"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! fd(self={"abcF" : Mapping({"\0" : 1})}):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using fd(self={"abcF" : %s})
Karsten Hopp 40865e
! fd(self={"abcF" : FailingIter()}):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! fd(self={"abcF" : FailingIterNext()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using fd(self={"abcF" : %s})
Karsten Hopp 40865e
! fd(self={"abcF" : None}):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! fd(self={"abcF" : {b"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! fd(self={"abcF" : {"": 1}}):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! fd(self={"abcF" : FailingMapping()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! fd(self={"abcF" : FailingMappingKey()}):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing StringToChars using fd(self=Mapping({%s : 1}))
Karsten Hopp 40865e
  fd(self=Mapping({1 : 1})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
  fd(self=Mapping({b"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  fd(self=Mapping({"\0" : 1})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self=Mapping({"abcG" : {%s : 1}}))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {1 : 1}})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {b"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {"\0" : 1}})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing StringToChars using fd(self=Mapping({"abcG" : Mapping({%s : 1})}))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : Mapping({1 : 1})})):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : Mapping({b"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : Mapping({"\0" : 1})})):(<class 'TypeError'>, TypeError('expected bytes with no null',))
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing *Iter* using fd(self=Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : FailingIter()})):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim structure',))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : FailingIterNext()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! <<< Finished
Karsten Hopp 40865e
! >>> Testing ConvertFromPyObject using fd(self=Mapping({"abcG" : %s}))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : None})):(<class 'TypeError'>, TypeError('unable to convert NoneType to vim structure',))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {b"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : {"": 1}})):(<class 'ValueError'>, ValueError('empty keys are not allowed',))
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : FailingMapping()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
! fd(self=Mapping({"abcG" : FailingMappingKey()})):(<class 'NotImplementedError'>, NotImplementedError())
Karsten Hopp 40865e
  <<< Finished
Karsten Hopp 40865e
  >>> Testing *Iter* using fd(self=%s)
Karsten Hopp 40865e
  fd(self=FailingIter()):(<class 'TypeError'>, TypeError('unable to convert FailingIter to vim dictionary',))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1046,1053 ****
Karsten Hopp 40865e
  vim.current.window.buffer = 0:(<class 'TypeError'>, TypeError('readonly attribute: buffer',))
Karsten Hopp 40865e
  vim.current.window.cursor = (100000000, 100000000):(<class 'vim.error'>, error('cursor position outside buffer',))
Karsten Hopp 40865e
  vim.current.window.cursor = True:(<class 'TypeError'>, TypeError('argument must be 2-item sequence, not bool',))
Karsten Hopp 40865e
! vim.current.window.height = "abc":(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got str',))
Karsten Hopp 40865e
! vim.current.window.width  = "abc":(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got str',))
Karsten Hopp 40865e
  vim.current.window.xxxxxx = True:(<class 'AttributeError'>, AttributeError('xxxxxx',))
Karsten Hopp 40865e
  > WinList
Karsten Hopp 40865e
  >> WinListItem
Karsten Hopp 40865e
--- 1049,1056 ----
Karsten Hopp 40865e
  vim.current.window.buffer = 0:(<class 'TypeError'>, TypeError('readonly attribute: buffer',))
Karsten Hopp 40865e
  vim.current.window.cursor = (100000000, 100000000):(<class 'vim.error'>, error('cursor position outside buffer',))
Karsten Hopp 40865e
  vim.current.window.cursor = True:(<class 'TypeError'>, TypeError('argument must be 2-item sequence, not bool',))
Karsten Hopp 40865e
! vim.current.window.height = "abcK":(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got str',))
Karsten Hopp 40865e
! vim.current.window.width  = "abcL":(<class 'TypeError'>, TypeError('expected int() or something supporting coercing to int(), but got str',))
Karsten Hopp 40865e
  vim.current.window.xxxxxx = True:(<class 'AttributeError'>, AttributeError('xxxxxx',))
Karsten Hopp 40865e
  > WinList
Karsten Hopp 40865e
  >> WinListItem
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1057,1063 ****
Karsten Hopp 40865e
  vim.current.buffer[0] = "\na":(<class 'vim.error'>, error('string cannot contain newlines',))
Karsten Hopp 40865e
  >> SetBufferLine (indirect)
Karsten Hopp 40865e
  vim.current.buffer[0] = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',))
Karsten Hopp 40865e
! >> SetBufferLines (indirect)
Karsten Hopp 40865e
  vim.current.buffer[:] = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',))
Karsten Hopp 40865e
  vim.current.buffer[:] = ["\na", "bc"]:(<class 'vim.error'>, error('string cannot contain newlines',))
Karsten Hopp 40865e
  >> InsertBufferLines (indirect)
Karsten Hopp 40865e
--- 1060,1066 ----
Karsten Hopp 40865e
  vim.current.buffer[0] = "\na":(<class 'vim.error'>, error('string cannot contain newlines',))
Karsten Hopp 40865e
  >> SetBufferLine (indirect)
Karsten Hopp 40865e
  vim.current.buffer[0] = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',))
Karsten Hopp 40865e
! >> SetBufferLineList (indirect)
Karsten Hopp 40865e
  vim.current.buffer[:] = True:(<class 'TypeError'>, TypeError('bad argument type for built-in operation',))
Karsten Hopp 40865e
  vim.current.buffer[:] = ["\na", "bc"]:(<class 'vim.error'>, error('string cannot contain newlines',))
Karsten Hopp 40865e
  >> InsertBufferLines (indirect)
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1075,1081 ****
Karsten Hopp 40865e
  vim.current.buffer.xxx = True:(<class 'AttributeError'>, AttributeError('xxx',))
Karsten Hopp 40865e
  >> BufferMark
Karsten Hopp 40865e
  vim.current.buffer.mark(0):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.current.buffer.mark("abc"):(<class 'ValueError'>, ValueError('mark name must be a single character',))
Karsten Hopp 40865e
  vim.current.buffer.mark("!"):(<class 'vim.error'>, error('invalid mark name',))
Karsten Hopp 40865e
  >> BufferRange
Karsten Hopp 40865e
  vim.current.buffer.range(1, 2, 3):(<class 'TypeError'>, TypeError('function takes exactly 2 arguments (3 given)',))
Karsten Hopp 40865e
--- 1078,1084 ----
Karsten Hopp 40865e
  vim.current.buffer.xxx = True:(<class 'AttributeError'>, AttributeError('xxx',))
Karsten Hopp 40865e
  >> BufferMark
Karsten Hopp 40865e
  vim.current.buffer.mark(0):(<class 'TypeError'>, TypeError('expected bytes() or str() instance, but got int',))
Karsten Hopp 40865e
! vim.current.buffer.mark("abcM"):(<class 'ValueError'>, ValueError('mark name must be a single character',))
Karsten Hopp 40865e
  vim.current.buffer.mark("!"):(<class 'vim.error'>, error('invalid mark name',))
Karsten Hopp 40865e
  >> BufferRange
Karsten Hopp 40865e
  vim.current.buffer.range(1, 2, 3):(<class 'TypeError'>, TypeError('function takes exactly 2 arguments (3 given)',))
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 1095,1101 ****
Karsten Hopp 40865e
  3,xx
Karsten Hopp 40865e
  before
Karsten Hopp 40865e
  after
Karsten Hopp 40865e
! vim.command("throw 'abc'"):(<class 'vim.error'>, error('abc',))
Karsten Hopp 40865e
  Exe("throw 'def'"):(<class 'vim.error'>, error('def',))
Karsten Hopp 40865e
  vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',))
Karsten Hopp 40865e
  vim.eval("Exe('echoerr ''jkl''')"):(<class 'vim.error'>, error('Vim(echoerr):jkl',))
Karsten Hopp 40865e
--- 1098,1104 ----
Karsten Hopp 40865e
  3,xx
Karsten Hopp 40865e
  before
Karsten Hopp 40865e
  after
Karsten Hopp 40865e
! vim.command("throw 'abcN'"):(<class 'vim.error'>, error('abcN',))
Karsten Hopp 40865e
  Exe("throw 'def'"):(<class 'vim.error'>, error('def',))
Karsten Hopp 40865e
  vim.eval("Exe('throw ''ghi''')"):(<class 'vim.error'>, error('ghi',))
Karsten Hopp 40865e
  vim.eval("Exe('echoerr ''jkl''')"):(<class 'vim.error'>, error('Vim(echoerr):jkl',))
Karsten Hopp 40865e
*** ../vim-7.3.1232/src/version.c	2013-06-23 14:30:42.000000000 +0200
Karsten Hopp 40865e
--- src/version.c	2013-06-23 14:32:12.000000000 +0200
Karsten Hopp 40865e
***************
Karsten Hopp 40865e
*** 730,731 ****
Karsten Hopp 40865e
--- 730,733 ----
Karsten Hopp 40865e
  {   /* Add new patch number below this line */
Karsten Hopp 40865e
+ /**/
Karsten Hopp 40865e
+     1233,
Karsten Hopp 40865e
  /**/
Karsten Hopp 40865e
Karsten Hopp 40865e
-- 
Karsten Hopp 40865e
ARTHUR: Right! Knights! Forward!
Karsten Hopp 40865e
   ARTHUR leads a charge toward the castle.  Various shots of them battling on,
Karsten Hopp 40865e
   despite being hit by a variety of farm animals.
Karsten Hopp 40865e
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
Karsten Hopp 40865e
Karsten Hopp 40865e
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 40865e
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 40865e
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
Karsten Hopp 40865e
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///