diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-05-30 13:14:13 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-05-30 13:14:13 +0200 |
commit | 355fd9b468108251eefc8c0d50390d0f627046ea (patch) | |
tree | 1a1619b43a82484791e10c3d589d1075f5f46c48 /src/testdir/test86.in | |
parent | 78cddbe2712b5e2bad3928f38345019d6803f31f (diff) |
updated for version 7.3.1063v7.3.1063
Problem: Python: Function is not standard.
Solution: Python patch 22: make Function subclassable. (ZyX)
Diffstat (limited to 'src/testdir/test86.in')
-rw-r--r-- | src/testdir/test86.in | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/testdir/test86.in b/src/testdir/test86.in index dfba65de9b..981d5e5739 100644 --- a/src/testdir/test86.in +++ b/src/testdir/test86.in @@ -31,6 +31,9 @@ STARTTEST :" :" Extending Dictionary directly with different types :let d = {} +:fun d.f() +: return 1 +:endfun py << EOF d=vim.bindeval('d') d['1']='asd' @@ -44,12 +47,13 @@ dk.sort(key=repr) dv.sort(key=repr) di.sort(key=repr) EOF +:$put =pyeval('d[''f''](self={})') :$put =pyeval('repr(dk)') :$put =substitute(pyeval('repr(dv)'),'0x\x\+','','g') :$put =substitute(pyeval('repr(di)'),'0x\x\+','','g') -:for [key, val] in sort(items(d)) -: $put =string(key) . ' : ' . string(val) -: unlet key val +:for [key, Val] in sort(items(d)) +: $put =string(key) . ' : ' . string(Val) +: unlet key Val :endfor :" :" removing items with del @@ -66,6 +70,7 @@ EOF :$put =string(l) :" :py del d['-1'] +:py del d['f'] :$put =string(pyeval('d.get(''b'', 1)')) :$put =string(pyeval('d.pop(''b'')')) :$put =string(pyeval('d.get(''b'', 1)')) @@ -187,9 +192,10 @@ EOF :catch : $put =v:exception[:16] :endtry +:py f=l[0] :delfunction New :try -: py l[0](1, 2, 3) +: py f(1, 2, 3) :catch : $put =v:exception[:16] :endtry @@ -737,6 +743,7 @@ EOF :$put =string(pyeval('vim.Dictionary(((''a'', 1),))')) :$put =string(pyeval('vim.List()')) :$put =string(pyeval('vim.List(iter(''abc''))')) +:$put =string(pyeval('vim.Function(''tr'')')) :" :" Test stdout/stderr :redir => messages @@ -747,6 +754,10 @@ EOF :redir END :$put =string(substitute(messages, '\d\+', '', 'g')) :" Test subclassing +:fun Put(...) +: $put =string(a:000) +: return a:000 +:endfun py << EOF class DupDict(vim.Dictionary): def __setitem__(self, key, value): @@ -762,10 +773,17 @@ class DupList(vim.List): dl = DupList() dl2 = DupList(iter('abc')) dl.extend(dl2[0]) + +class DupFun(vim.Function): + def __call__(self, arg): + return super(DupFun, self).__call__(arg, arg) + +df = DupFun('Put') EOF :$put =string(sort(keys(pyeval('dd')))) :$put =string(pyeval('dl')) :$put =string(pyeval('dl2')) +:$put =string(pyeval('df(2)')) :" :" Test exceptions :fun Exe(e) |