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