2019-01-02 06:51:03 -07:00
|
|
|
" Test for pyx* commands and functions with Python 3.
|
|
|
|
|
|
|
|
set pyx=3
|
2022-07-07 17:26:25 -07:00
|
|
|
source check.vim
|
|
|
|
CheckFeature python3
|
2019-01-02 06:51:03 -07:00
|
|
|
|
|
|
|
let s:py2pattern = '^2\.[0-7]\.\d\+'
|
|
|
|
let s:py3pattern = '^3\.\d\+\.\d\+'
|
|
|
|
|
|
|
|
|
|
|
|
func Test_has_pythonx()
|
|
|
|
call assert_true(has('pythonx'))
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
|
|
|
|
func Test_pyx()
|
|
|
|
redir => var
|
2023-04-28 17:12:32 -07:00
|
|
|
pyx << trim EOF
|
|
|
|
import sys
|
|
|
|
print(sys.version)
|
|
|
|
EOF
|
2019-01-02 06:51:03 -07:00
|
|
|
redir END
|
|
|
|
call assert_match(s:py3pattern, split(var)[0])
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
|
|
|
|
func Test_pyxdo()
|
|
|
|
pyx import sys
|
|
|
|
enew
|
|
|
|
pyxdo return sys.version.split("\n")[0]
|
|
|
|
call assert_match(s:py3pattern, split(getline('.'))[0])
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
|
|
|
|
func Test_pyxeval()
|
|
|
|
pyx import sys
|
|
|
|
call assert_match(s:py3pattern, split(pyxeval('sys.version'))[0])
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
|
|
|
|
func Test_pyxfile()
|
|
|
|
" No special comments nor shebangs
|
|
|
|
redir => var
|
|
|
|
pyxfile pyxfile/pyx.py
|
|
|
|
redir END
|
|
|
|
call assert_match(s:py3pattern, split(var)[0])
|
|
|
|
|
|
|
|
" Python 3 special comment
|
|
|
|
redir => var
|
|
|
|
pyxfile pyxfile/py3_magic.py
|
|
|
|
redir END
|
|
|
|
call assert_match(s:py3pattern, split(var)[0])
|
|
|
|
|
|
|
|
" Python 3 shebang
|
|
|
|
redir => var
|
|
|
|
pyxfile pyxfile/py3_shebang.py
|
|
|
|
redir END
|
|
|
|
call assert_match(s:py3pattern, split(var)[0])
|
|
|
|
|
|
|
|
if has('python')
|
|
|
|
" Python 2 special comment
|
|
|
|
redir => var
|
|
|
|
pyxfile pyxfile/py2_magic.py
|
|
|
|
redir END
|
|
|
|
call assert_match(s:py2pattern, split(var)[0])
|
|
|
|
|
|
|
|
" Python 2 shebang
|
|
|
|
redir => var
|
|
|
|
pyxfile pyxfile/py2_shebang.py
|
|
|
|
redir END
|
|
|
|
call assert_match(s:py2pattern, split(var)[0])
|
|
|
|
endif
|
|
|
|
endfunc
|
2019-12-31 21:15:42 -07:00
|
|
|
|
|
|
|
func Test_Catch_Exception_Message()
|
|
|
|
try
|
|
|
|
pyx raise RuntimeError( 'TEST' )
|
|
|
|
catch /.*/
|
2024-01-07 05:05:03 -07:00
|
|
|
call assert_match('^Vim(.*):.*RuntimeError: TEST.*$', v:exception )
|
2019-12-31 21:15:42 -07:00
|
|
|
endtry
|
|
|
|
endfunc
|
2023-04-28 17:12:32 -07:00
|
|
|
|
|
|
|
" Test for various heredoc syntaxes
|
|
|
|
func Test_pyx3_heredoc()
|
|
|
|
pyx << END
|
|
|
|
result='A'
|
|
|
|
END
|
|
|
|
pyx <<
|
|
|
|
result+='B'
|
|
|
|
.
|
|
|
|
pyx << trim END
|
|
|
|
result+='C'
|
|
|
|
END
|
|
|
|
pyx << trim
|
|
|
|
result+='D'
|
|
|
|
.
|
2023-04-28 17:50:04 -07:00
|
|
|
pyx << trim eof
|
|
|
|
result+='E'
|
|
|
|
eof
|
|
|
|
call assert_equal('ABCDE', pyxeval('result'))
|
2023-04-28 17:12:32 -07:00
|
|
|
endfunc
|
|
|
|
|
|
|
|
" vim: shiftwidth=2 sts=2 expandtab
|