xref: /vim-8.2.3635/src/testdir/test_pyx2.vim (revision 6ab0953f)
1f42dd3c3SBram Moolenaar" Test for pyx* commands and functions with Python 2.
2f42dd3c3SBram Moolenaar
3f42dd3c3SBram Moolenaarset pyx=2
4b46fecd3SBram Moolenaarsource check.vim
5b46fecd3SBram MoolenaarCheckFeature python
6f42dd3c3SBram Moolenaar
7f42dd3c3SBram Moolenaarlet s:py2pattern = '^2\.[0-7]\.\d\+'
8f42dd3c3SBram Moolenaarlet s:py3pattern = '^3\.\d\+\.\d\+'
9f42dd3c3SBram Moolenaar
10f42dd3c3SBram Moolenaar
11f42dd3c3SBram Moolenaarfunc Test_has_pythonx()
12f42dd3c3SBram Moolenaar  call assert_true(has('pythonx'))
13f42dd3c3SBram Moolenaarendfunc
14f42dd3c3SBram Moolenaar
15f42dd3c3SBram Moolenaar
16f42dd3c3SBram Moolenaarfunc Test_pyx()
17f42dd3c3SBram Moolenaar  redir => var
186c2b7b80SBram Moolenaar  pyx << trim EOF
19f42dd3c3SBram Moolenaar    import sys
20f42dd3c3SBram Moolenaar    print(sys.version)
21f42dd3c3SBram Moolenaar  EOF
22f42dd3c3SBram Moolenaar  redir END
23f42dd3c3SBram Moolenaar  call assert_match(s:py2pattern, split(var)[0])
24f42dd3c3SBram Moolenaarendfunc
25f42dd3c3SBram Moolenaar
26f42dd3c3SBram Moolenaar
27f42dd3c3SBram Moolenaarfunc Test_pyxdo()
28f42dd3c3SBram Moolenaar  pyx import sys
29f42dd3c3SBram Moolenaar  enew
30f42dd3c3SBram Moolenaar  pyxdo return sys.version.split("\n")[0]
31f42dd3c3SBram Moolenaar  call assert_match(s:py2pattern, split(getline('.'))[0])
32f42dd3c3SBram Moolenaarendfunc
33f42dd3c3SBram Moolenaar
34f42dd3c3SBram Moolenaar
35f42dd3c3SBram Moolenaarfunc Test_pyxeval()
36f42dd3c3SBram Moolenaar  pyx import sys
373f4f3d8eSBram Moolenaar  call assert_match(s:py2pattern, split('sys.version'->pyxeval())[0])
38f42dd3c3SBram Moolenaarendfunc
39f42dd3c3SBram Moolenaar
40f42dd3c3SBram Moolenaar
41f42dd3c3SBram Moolenaarfunc Test_pyxfile()
42f42dd3c3SBram Moolenaar  " No special comments nor shebangs
43f42dd3c3SBram Moolenaar  redir => var
44f42dd3c3SBram Moolenaar  pyxfile pyxfile/pyx.py
45f42dd3c3SBram Moolenaar  redir END
46f42dd3c3SBram Moolenaar  call assert_match(s:py2pattern, split(var)[0])
47f42dd3c3SBram Moolenaar
48f42dd3c3SBram Moolenaar  " Python 2 special comment
49f42dd3c3SBram Moolenaar  redir => var
50f42dd3c3SBram Moolenaar  pyxfile pyxfile/py2_magic.py
51f42dd3c3SBram Moolenaar  redir END
52f42dd3c3SBram Moolenaar  call assert_match(s:py2pattern, split(var)[0])
53f42dd3c3SBram Moolenaar
54f42dd3c3SBram Moolenaar  " Python 2 shebang
55f42dd3c3SBram Moolenaar  redir => var
56f42dd3c3SBram Moolenaar  pyxfile pyxfile/py2_shebang.py
57f42dd3c3SBram Moolenaar  redir END
58f42dd3c3SBram Moolenaar  call assert_match(s:py2pattern, split(var)[0])
59f42dd3c3SBram Moolenaar
60f42dd3c3SBram Moolenaar  if has('python3')
61f42dd3c3SBram Moolenaar    " Python 3 special comment
62f42dd3c3SBram Moolenaar    redir => var
63f42dd3c3SBram Moolenaar    pyxfile pyxfile/py3_magic.py
64f42dd3c3SBram Moolenaar    redir END
65f42dd3c3SBram Moolenaar    call assert_match(s:py3pattern, split(var)[0])
66f42dd3c3SBram Moolenaar
67f42dd3c3SBram Moolenaar    " Python 3 shebang
68f42dd3c3SBram Moolenaar    redir => var
69f42dd3c3SBram Moolenaar    pyxfile pyxfile/py3_shebang.py
70f42dd3c3SBram Moolenaar    redir END
71f42dd3c3SBram Moolenaar    call assert_match(s:py3pattern, split(var)[0])
72f42dd3c3SBram Moolenaar  endif
73f42dd3c3SBram Moolenaarendfunc
747f3a2849SBram Moolenaar
757f3a2849SBram Moolenaarfunc Test_Catch_Exception_Message()
767f3a2849SBram Moolenaar  try
777f3a2849SBram Moolenaar    pyx raise RuntimeError( 'TEST' )
787f3a2849SBram Moolenaar  catch /.*/
797f3a2849SBram Moolenaar    call assert_match( '^Vim(.*):RuntimeError: TEST$', v:exception )
807f3a2849SBram Moolenaar  endtry
817f3a2849SBram Moolenaarendfunc
826c2b7b80SBram Moolenaar
836c2b7b80SBram Moolenaar" Test for various heredoc syntaxes
846c2b7b80SBram Moolenaarfunc Test_pyx2_heredoc()
856c2b7b80SBram Moolenaar  pyx << END
866c2b7b80SBram Moolenaarresult='A'
876c2b7b80SBram MoolenaarEND
886c2b7b80SBram Moolenaar  pyx <<
896c2b7b80SBram Moolenaarresult+='B'
906c2b7b80SBram Moolenaar.
916c2b7b80SBram Moolenaar  pyx << trim END
926c2b7b80SBram Moolenaar    result+='C'
936c2b7b80SBram Moolenaar  END
946c2b7b80SBram Moolenaar  pyx << trim
956c2b7b80SBram Moolenaar    result+='D'
966c2b7b80SBram Moolenaar  .
97*6ab0953fSBram Moolenaar  pyx << trim eof
98*6ab0953fSBram Moolenaar    result+='E'
99*6ab0953fSBram Moolenaar  eof
100*6ab0953fSBram Moolenaar  call assert_equal('ABCDE', pyxeval('result'))
1016c2b7b80SBram Moolenaarendfunc
1026c2b7b80SBram Moolenaar
1036c2b7b80SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
104