" Test for pyx* commands and functions with Python 2.

set pyx=2
source check.vim
CheckFeature python

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
  pyx << trim EOF
    import sys
    print(sys.version)
  EOF
  redir END
  call assert_match(s:py2pattern, split(var)[0])
endfunc


func Test_pyxdo()
  pyx import sys
  enew
  pyxdo return sys.version.split("\n")[0]
  call assert_match(s:py2pattern, split(getline('.'))[0])
endfunc


func Test_pyxeval()
  pyx import sys
  call assert_match(s:py2pattern, split('sys.version'->pyxeval())[0])
endfunc


func Test_pyxfile()
  " No special comments nor shebangs
  redir => var
  pyxfile pyxfile/pyx.py
  redir END
  call assert_match(s:py2pattern, split(var)[0])

  " 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])

  if has('python3')
    " 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])
  endif
endfunc

func Test_Catch_Exception_Message()
  try
    pyx raise RuntimeError( 'TEST' )
  catch /.*/
    call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception )
  endtry
endfunc

" Test for various heredoc syntaxes
func Test_pyx2_heredoc()
  pyx << END
result='A'
END
  pyx <<
result+='B'
.
  pyx << trim END
    result+='C'
  END
  pyx << trim
    result+='D'
  .
  pyx << trim eof
    result+='E'
  eof
  call assert_equal('ABCDE', pyxeval('result'))
endfunc

" vim: shiftwidth=2 sts=2 expandtab
