# HG changeset patch # User Bram Moolenaar # Date 1582467304 -3600 # Node ID f22626353eb3804ba4d60b6e2ac74f8fec5fb2ed # Parent a405fc5998f2e990e259ac9f086a07987ecb8ac7 patch 8.2.0307: Python 3 vim.eval not well tested Commit: https://github.com/vim/vim/commit/026270c01d8ae4425b2afe289d464451718cb9ab Author: Bram Moolenaar Date: Sun Feb 23 15:10:16 2020 +0100 patch 8.2.0307: Python 3 vim.eval not well tested Problem: Python 3 vim.eval not well tested. Solution: Add a test. (Dominique Pelle, closes https://github.com/vim/vim/issues/5680) diff --git a/src/testdir/test_python3.vim b/src/testdir/test_python3.vim --- a/src/testdir/test_python3.vim +++ b/src/testdir/test_python3.vim @@ -188,6 +188,31 @@ func Test_unicode() set encoding=utf8 endfunc +" Test vim.eval() with various types. +func Test_python3_vim_val() + call assert_equal("\n8", execute('py3 print(vim.eval("3+5"))')) + if has('float') + call assert_equal("\n3.140000", execute('py3 print(vim.eval("1.01+2.13"))')) + call assert_equal("\n0.000000", execute('py3 print(vim.eval("0.0/(1.0/0.0)"))')) + call assert_equal("\n0.000000", execute('py3 print(vim.eval("0.0/(1.0/0.0)"))')) + call assert_equal("\n-0.000000", execute('py3 print(vim.eval("0.0/(-1.0/0.0)"))')) + " Commented out: output of infinity and nan depend on platforms. + " call assert_equal("\ninf", execute('py3 print(vim.eval("1.0/0.0"))')) + " call assert_equal("\n-inf", execute('py3 print(vim.eval("-1.0/0.0"))')) + " call assert_equal("\n-nan", execute('py3 print(vim.eval("0.0/0.0"))')) + endif + call assert_equal("\nabc", execute('py3 print(vim.eval("\"abc\""))')) + call assert_equal("\n['1', '2']", execute('py3 print(vim.eval("[1, 2]"))')) + call assert_equal("\n{'1': '2'}", execute('py3 print(vim.eval("{1:2}"))')) + call assert_equal("\nTrue", execute('py3 print(vim.eval("v:true"))')) + call assert_equal("\nFalse", execute('py3 print(vim.eval("v:false"))')) + call assert_equal("\nNone", execute('py3 print(vim.eval("v:null"))')) + call assert_equal("\nNone", execute('py3 print(vim.eval("v:none"))')) + call assert_equal("\nb'\\xab\\x12'", execute('py3 print(vim.eval("0zab12"))')) + + call assert_fails('py3 vim.eval("1+")', 'vim.error: invalid expression') +endfunc + " Test range objects, see :help python-range func Test_python3_range() new diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 307, +/**/ 306, /**/ 305,