1" Test for pyx* commands and functions with Python 3. 2 3set pyx=3 4source check.vim 5CheckFeature python3 6 7let s:py2pattern = '^2\.[0-7]\.\d\+' 8let s:py3pattern = '^3\.\d\+\.\d\+' 9 10 11func Test_has_pythonx() 12 call assert_true(has('pythonx')) 13endfunc 14 15 16func Test_pyx() 17 redir => var 18 pyx << trim EOF 19 import sys 20 print(sys.version) 21 EOF 22 redir END 23 call assert_match(s:py3pattern, split(var)[0]) 24endfunc 25 26 27func Test_pyxdo() 28 pyx import sys 29 enew 30 pyxdo return sys.version.split("\n")[0] 31 call assert_match(s:py3pattern, split(getline('.'))[0]) 32endfunc 33 34 35func Test_pyxeval() 36 pyx import sys 37 call assert_match(s:py3pattern, split(pyxeval('sys.version'))[0]) 38endfunc 39 40 41func Test_pyxfile() 42 " No special comments nor shebangs 43 redir => var 44 pyxfile pyxfile/pyx.py 45 redir END 46 call assert_match(s:py3pattern, split(var)[0]) 47 48 " Python 3 special comment 49 redir => var 50 pyxfile pyxfile/py3_magic.py 51 redir END 52 call assert_match(s:py3pattern, split(var)[0]) 53 54 " Python 3 shebang 55 redir => var 56 pyxfile pyxfile/py3_shebang.py 57 redir END 58 call assert_match(s:py3pattern, split(var)[0]) 59 60 if has('python') 61 " Python 2 special comment 62 redir => var 63 pyxfile pyxfile/py2_magic.py 64 redir END 65 call assert_match(s:py2pattern, split(var)[0]) 66 67 " Python 2 shebang 68 redir => var 69 pyxfile pyxfile/py2_shebang.py 70 redir END 71 call assert_match(s:py2pattern, split(var)[0]) 72 endif 73endfunc 74 75func Test_Catch_Exception_Message() 76 try 77 pyx raise RuntimeError( 'TEST' ) 78 catch /.*/ 79 call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception ) 80 endtry 81endfunc 82 83" Test for various heredoc syntaxes 84func Test_pyx3_heredoc() 85 pyx << END 86result='A' 87END 88 pyx << 89result+='B' 90. 91 pyx << trim END 92 result+='C' 93 END 94 pyx << trim 95 result+='D' 96 . 97 pyx << trim eof 98 result+='E' 99 eof 100 call assert_equal('ABCDE', pyxeval('result')) 101endfunc 102 103" vim: shiftwidth=2 sts=2 expandtab 104