Mercurial > vim
changeset 3802:e75da4a3225d v7.3.659
updated for version 7.3.659
Problem: Recent Python changes are not tested.
Solution: Add tests for Python bindings. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 05 Sep 2012 19:17:42 +0200 |
parents | a3f1d873298a |
children | 1052677493be |
files | src/testdir/test86.in src/testdir/test86.ok src/testdir/test87.in src/testdir/test87.ok src/version.c |
diffstat | 5 files changed, 110 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test86.in +++ b/src/testdir/test86.in @@ -176,28 +176,62 @@ STARTTEST :else : $put ='[0.0, 0.0]' :endif +:let messages=[] +:py <<EOF +d=vim.bindeval('{}') +m=vim.bindeval('messages') +try: + d['abc'] +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d['abc']="\0" +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d['abc']=vim +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d['']=1 +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d['a\0b']=1 +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d[b'a\0b']=1 +except Exception as e: + m.extend([e.__class__.__name__]) +EOF +:$put =messages :" :" pyeval() :let l=pyeval('range(3)') :$put =string(l) :let d=pyeval('{"a": "b", "c": 1, "d": ["e"]}') :$put =sort(items(d)) -:try -: let undef=pyeval('undefined_name') -:catch -: $put =v:exception[:13] -:endtry -:try -: let vim=pyeval('vim') -:catch -: $put =v:exception[:13] -:endtry :if has('float') : let f=pyeval('0.0') : $put =string(f) :else : $put ='0.0' :endif +:" Invalid values: +:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim'] +: try +: let v=pyeval(e) +: catch +: let toput=e.":\t".v:exception[:13] +: $put =toput +: endtry +:endfor :endfun :" :call Test()
--- a/src/testdir/test86.ok +++ b/src/testdir/test86.ok @@ -38,10 +38,18 @@ Vim(put):E684: Vim(python):E725: Vim(python):E117: [0.0, 0.0] +IndexError +TypeError +TypeError +ValueError +TypeError +TypeError [0, 1, 2] ['a', 'b'] ['c', 1] ['d', ['e']] -Vim(let):E858: -Vim(let):E859: 0.0 +"\0": Vim(let):E859: +{"\0": 1}: Vim(let):E859: +undefined_name: Vim(let):E858: +vim: Vim(let):E859:
--- a/src/testdir/test87.in +++ b/src/testdir/test87.in @@ -176,28 +176,62 @@ STARTTEST :else : $put ='[0.0, 0.0]' :endif +:let messages=[] +:py3 <<EOF +d=vim.bindeval('{}') +m=vim.bindeval('messages') +try: + d['abc'] +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d['abc']="\0" +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d['abc']=vim +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d['']=1 +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d['a\0b']=1 +except Exception as e: + m.extend([e.__class__.__name__]) + +try: + d[b'a\0b']=1 +except Exception as e: + m.extend([e.__class__.__name__]) +EOF +:$put =messages :" :" py3eval() :let l=py3eval('[0, 1, 2]') :$put =string(l) :let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}') :$put =sort(items(d)) -:try -: let undef=py3eval('undefined_name') -:catch -: $put =v:exception[:13] -:endtry -:try -: let vim=py3eval('vim') -:catch -: $put =v:exception[:13] -:endtry :if has('float') : let f=py3eval('0.0') : $put =string(f) :else : $put ='0.0' :endif +:" Invalid values: +:for e in ['"\0"', '{"\0": 1}', 'undefined_name', 'vim'] +: try +: let v=py3eval(e) +: catch +: let toput=e.":\t".v:exception[:13] +: $put =toput +: endtry +:endfor :endfun :" :call Test()
--- a/src/testdir/test87.ok +++ b/src/testdir/test87.ok @@ -38,10 +38,18 @@ Vim(put):E684: Vim(py3):E725: Vim(py3):E117: [0.0, 0.0] +IndexError +TypeError +TypeError +ValueError +TypeError +TypeError [0, 1, 2] ['a', 'b'] ['c', 1] ['d', ['e']] -Vim(let):E860: -Vim(let):E861: 0.0 +"\0": Vim(let):E861: +{"\0": 1}: Vim(let):E861: +undefined_name: Vim(let):E860: +vim: Vim(let):E861: