summaryrefslogtreecommitdiffstats
path: root/src/testdir/test86.in
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2013-05-30 13:14:13 +0200
committerBram Moolenaar <Bram@vim.org>2013-05-30 13:14:13 +0200
commit355fd9b468108251eefc8c0d50390d0f627046ea (patch)
tree1a1619b43a82484791e10c3d589d1075f5f46c48 /src/testdir/test86.in
parent78cddbe2712b5e2bad3928f38345019d6803f31f (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.in26
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)