xref: /vim-8.2.3635/src/testdir/test_python2.vim (revision 63dbfd33)
1a58883b4SBram Moolenaar" Test for python 2 commands.
2a58883b4SBram Moolenaar" TODO: move tests from test87.in here.
3a58883b4SBram Moolenaar
4a58883b4SBram Moolenaarif !has('python')
5a58883b4SBram Moolenaar  finish
6a58883b4SBram Moolenaarendif
7a58883b4SBram Moolenaar
8a58883b4SBram Moolenaarfunc Test_pydo()
9a58883b4SBram Moolenaar  " Check deleting lines does not trigger ml_get error.
10a58883b4SBram Moolenaar  py import vim
11a58883b4SBram Moolenaar  new
12a58883b4SBram Moolenaar  call setline(1, ['one', 'two', 'three'])
13a58883b4SBram Moolenaar  pydo vim.command("%d_")
14a58883b4SBram Moolenaar  bwipe!
15a58883b4SBram Moolenaar
16a58883b4SBram Moolenaar  " Check switching to another buffer does not trigger ml_get error.
17a58883b4SBram Moolenaar  new
18a58883b4SBram Moolenaar  let wincount = winnr('$')
19a58883b4SBram Moolenaar  call setline(1, ['one', 'two', 'three'])
20a58883b4SBram Moolenaar  pydo vim.command("new")
21a58883b4SBram Moolenaar  call assert_equal(wincount + 1, winnr('$'))
22a58883b4SBram Moolenaar  bwipe!
23a58883b4SBram Moolenaar  bwipe!
24a58883b4SBram Moolenaarendfunc
2553901442SBram Moolenaar
2653901442SBram Moolenaarfunc Test_set_cursor()
2753901442SBram Moolenaar  " Check that setting the cursor position works.
2853901442SBram Moolenaar  py import vim
2953901442SBram Moolenaar  new
3053901442SBram Moolenaar  call setline(1, ['first line', 'second line'])
3153901442SBram Moolenaar  normal gg
3253901442SBram Moolenaar  pydo vim.current.window.cursor = (1, 5)
3353901442SBram Moolenaar  call assert_equal([1, 6], [line('.'), col('.')])
3453901442SBram Moolenaar
3553901442SBram Moolenaar  " Check that movement after setting cursor position keeps current column.
3653901442SBram Moolenaar  normal j
3753901442SBram Moolenaar  call assert_equal([2, 6], [line('.'), col('.')])
3853901442SBram Moolenaarendfunc
399123c0b3SBram Moolenaar
409123c0b3SBram Moolenaarfunc Test_vim_function()
419123c0b3SBram Moolenaar  " Check creating vim.Function object
429123c0b3SBram Moolenaar  py import vim
439123c0b3SBram Moolenaar
449123c0b3SBram Moolenaar  func s:foo()
459123c0b3SBram Moolenaar    return matchstr(expand('<sfile>'), '<SNR>\zs\d\+_foo$')
469123c0b3SBram Moolenaar  endfunc
479123c0b3SBram Moolenaar  let name = '<SNR>' . s:foo()
489123c0b3SBram Moolenaar
499123c0b3SBram Moolenaar  try
509123c0b3SBram Moolenaar    py f = vim.bindeval('function("s:foo")')
519123c0b3SBram Moolenaar    call assert_equal(name, pyeval('f.name'))
529123c0b3SBram Moolenaar  catch
539123c0b3SBram Moolenaar    call assert_false(v:exception)
549123c0b3SBram Moolenaar  endtry
559123c0b3SBram Moolenaar
569123c0b3SBram Moolenaar  try
579123c0b3SBram Moolenaar    py f = vim.Function('\x80\xfdR' + vim.eval('s:foo()'))
589123c0b3SBram Moolenaar    call assert_equal(name, pyeval('f.name'))
599123c0b3SBram Moolenaar  catch
609123c0b3SBram Moolenaar    call assert_false(v:exception)
619123c0b3SBram Moolenaar  endtry
629123c0b3SBram Moolenaar
639123c0b3SBram Moolenaar  py del f
649123c0b3SBram Moolenaar  delfunc s:foo
659123c0b3SBram Moolenaarendfunc
6614816ad6SBram Moolenaar
6714816ad6SBram Moolenaarfunc Test_skipped_python_command_does_not_affect_pyxversion()
6814816ad6SBram Moolenaar  set pyxversion=0
6914816ad6SBram Moolenaar  if 0
7014816ad6SBram Moolenaar    python import vim
7114816ad6SBram Moolenaar  endif
7214816ad6SBram Moolenaar  call assert_equal(0, &pyxversion)  " This assertion would have failed with Vim 8.0.0251. (pyxversion was introduced in 8.0.0251.)
7314816ad6SBram Moolenaarendfunc
74*63dbfd33SBram Moolenaar
75*63dbfd33SBram Moolenaarfunc _SetUpHiddenBuffer()
76*63dbfd33SBram Moolenaar  py import vim
77*63dbfd33SBram Moolenaar  new
78*63dbfd33SBram Moolenaar  edit hidden
79*63dbfd33SBram Moolenaar  setlocal bufhidden=hide
80*63dbfd33SBram Moolenaar
81*63dbfd33SBram Moolenaar  enew
82*63dbfd33SBram Moolenaar  let lnum = 0
83*63dbfd33SBram Moolenaar  while lnum < 10
84*63dbfd33SBram Moolenaar    call append( 1, string( lnum ) )
85*63dbfd33SBram Moolenaar    let lnum = lnum + 1
86*63dbfd33SBram Moolenaar  endwhile
87*63dbfd33SBram Moolenaar  normal G
88*63dbfd33SBram Moolenaar
89*63dbfd33SBram Moolenaar  call assert_equal( line( '.' ), 11 )
90*63dbfd33SBram Moolenaarendfunc
91*63dbfd33SBram Moolenaar
92*63dbfd33SBram Moolenaarfunc Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_Clear()
93*63dbfd33SBram Moolenaar  call _SetUpHiddenBuffer()
94*63dbfd33SBram Moolenaar  py vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][:] = None
95*63dbfd33SBram Moolenaar  call assert_equal( line( '.' ), 11 )
96*63dbfd33SBram Moolenaar  bwipe!
97*63dbfd33SBram Moolenaarendfunc
98*63dbfd33SBram Moolenaar
99*63dbfd33SBram Moolenaarfunc Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_List()
100*63dbfd33SBram Moolenaar  call _SetUpHiddenBuffer()
101*63dbfd33SBram Moolenaar  py vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][:] = [ 'test' ]
102*63dbfd33SBram Moolenaar  call assert_equal( line( '.' ), 11 )
103*63dbfd33SBram Moolenaar  bwipe!
104*63dbfd33SBram Moolenaarendfunc
105*63dbfd33SBram Moolenaar
106*63dbfd33SBram Moolenaarfunc Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_Str()
107*63dbfd33SBram Moolenaar  call _SetUpHiddenBuffer()
108*63dbfd33SBram Moolenaar  py vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][0] = 'test'
109*63dbfd33SBram Moolenaar  call assert_equal( line( '.' ), 11 )
110*63dbfd33SBram Moolenaar  bwipe!
111*63dbfd33SBram Moolenaarendfunc
112*63dbfd33SBram Moolenaar
113*63dbfd33SBram Moolenaarfunc Test_Write_To_HiddenBuffer_Does_Not_Fix_Cursor_ClearLine()
114*63dbfd33SBram Moolenaar  call _SetUpHiddenBuffer()
115*63dbfd33SBram Moolenaar  py vim.buffers[ int( vim.eval( 'bufnr("hidden")' ) ) ][0] = None
116*63dbfd33SBram Moolenaar  call assert_equal( line( '.' ), 11 )
117*63dbfd33SBram Moolenaar  bwipe!
118*63dbfd33SBram Moolenaarendfunc
119*63dbfd33SBram Moolenaar
120*63dbfd33SBram Moolenaarfunc _SetUpVisibleBuffer()
121*63dbfd33SBram Moolenaar  py import vim
122*63dbfd33SBram Moolenaar  new
123*63dbfd33SBram Moolenaar  let lnum = 0
124*63dbfd33SBram Moolenaar  while lnum < 10
125*63dbfd33SBram Moolenaar    call append( 1, string( lnum ) )
126*63dbfd33SBram Moolenaar    let lnum = lnum + 1
127*63dbfd33SBram Moolenaar  endwhile
128*63dbfd33SBram Moolenaar  normal G
129*63dbfd33SBram Moolenaar  call assert_equal( line( '.' ), 11 )
130*63dbfd33SBram Moolenaarendfunc
131*63dbfd33SBram Moolenaar
132*63dbfd33SBram Moolenaarfunc Test_Write_To_Current_Buffer_Fixes_Cursor_Clear()
133*63dbfd33SBram Moolenaar  call _SetUpVisibleBuffer()
134*63dbfd33SBram Moolenaar
135*63dbfd33SBram Moolenaar  py vim.current.buffer[:] = None
136*63dbfd33SBram Moolenaar  call assert_equal( line( '.' ), 1 )
137*63dbfd33SBram Moolenaar
138*63dbfd33SBram Moolenaar  bwipe!
139*63dbfd33SBram Moolenaarendfunc
140*63dbfd33SBram Moolenaar
141*63dbfd33SBram Moolenaarfunc Test_Write_To_Current_Buffer_Fixes_Cursor_List()
142*63dbfd33SBram Moolenaar  call _SetUpVisibleBuffer()
143*63dbfd33SBram Moolenaar
144*63dbfd33SBram Moolenaar  py vim.current.buffer[:] = [ 'test' ]
145*63dbfd33SBram Moolenaar  call assert_equal( line( '.' ), 1 )
146*63dbfd33SBram Moolenaar
147*63dbfd33SBram Moolenaar  bwipe!
148*63dbfd33SBram Moolenaarendfunction
149*63dbfd33SBram Moolenaar
150*63dbfd33SBram Moolenaarfunc Test_Write_To_Current_Buffer_Fixes_Cursor_Str()
151*63dbfd33SBram Moolenaar  call _SetUpVisibleBuffer()
152*63dbfd33SBram Moolenaar
153*63dbfd33SBram Moolenaar  py vim.current.buffer[-1] = None
154*63dbfd33SBram Moolenaar  call assert_equal( line( '.' ), 10 )
155*63dbfd33SBram Moolenaar
156*63dbfd33SBram Moolenaar  bwipe!
157*63dbfd33SBram Moolenaarendfunction
158