mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			104 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Test for pyx* commands and functions with Python 3.
 | 
						|
 | 
						|
set pyx=3
 | 
						|
source check.vim
 | 
						|
CheckFeature python3
 | 
						|
 | 
						|
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: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
 | 
						|
 | 
						|
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_pyx3_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
 |