xref: /vim-8.2.3635/src/testdir/test_pyx2.vim (revision ceb56ddb)
1" Test for pyx* commands and functions with Python 2.
2
3set pyx=2
4source check.vim
5CheckFeature python
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:py2pattern, 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:py2pattern, split(getline('.'))[0])
32endfunc
33
34
35func Test_pyxeval()
36  pyx import sys
37  call assert_match(s:py2pattern, split('sys.version'->pyxeval())[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:py2pattern, split(var)[0])
47
48  " Python 2 special comment
49  redir => var
50  pyxfile pyxfile/py2_magic.py
51  redir END
52  call assert_match(s:py2pattern, split(var)[0])
53
54  " Python 2 shebang
55  redir => var
56  pyxfile pyxfile/py2_shebang.py
57  redir END
58  call assert_match(s:py2pattern, split(var)[0])
59
60  if has('python3')
61    " Python 3 special comment
62    redir => var
63    pyxfile pyxfile/py3_magic.py
64    redir END
65    call assert_match(s:py3pattern, split(var)[0])
66
67    " Python 3 shebang
68    redir => var
69    pyxfile pyxfile/py3_shebang.py
70    redir END
71    call assert_match(s:py3pattern, 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_pyx2_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