neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

test_pyx3.vim (1964B)


      1 " Test for pyx* commands and functions with Python 3.
      2 
      3 set pyx=3
      4 source check.vim
      5 CheckFeature python3
      6 
      7 let s:py2pattern = '^2\.[0-7]\.\d\+'
      8 let s:py3pattern = '^3\.\d\+\.\d\+'
      9 
     10 
     11 func Test_has_pythonx()
     12  call assert_true(has('pythonx'))
     13 endfunc
     14 
     15 
     16 func 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])
     24 endfunc
     25 
     26 
     27 func 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])
     32 endfunc
     33 
     34 
     35 func Test_pyxeval()
     36  pyx import sys
     37  call assert_match(s:py3pattern, split(pyxeval('sys.version'))[0])
     38 endfunc
     39 
     40 
     41 func 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
     73 endfunc
     74 
     75 func Test_Catch_Exception_Message()
     76  try
     77    pyx raise RuntimeError( 'TEST' )
     78  catch /.*/
     79    call assert_match('^Vim(.*):.*RuntimeError: TEST.*$', v:exception )
     80  endtry
     81 endfunc
     82 
     83 " Test for various heredoc syntaxes
     84 func Test_pyx3_heredoc()
     85  pyx << END
     86 result='A'
     87 END
     88  pyx <<
     89 result+='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  pyx << trimm
    101 result+='F'
    102 trimm
    103  call assert_equal('ABCDEF', pyxeval('result'))
    104 endfunc
    105 
    106 " vim: shiftwidth=2 sts=2 expandtab