changeset 19499:f22626353eb3 v8.2.0307

patch 8.2.0307: Python 3 vim.eval not well tested Commit: https://github.com/vim/vim/commit/026270c01d8ae4425b2afe289d464451718cb9ab Author: Bram Moolenaar <Bram@vim.org> 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)
author Bram Moolenaar <Bram@vim.org>
date Sun, 23 Feb 2020 15:15:04 +0100
parents a405fc5998f2
children 6b592f4a53c1
files src/testdir/test_python3.vim src/version.c
diffstat 2 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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,