Mercurial > vim
annotate src/testdir/test_python3.vim @ 15719:3f92851b9a57 v8.1.0867
patch 8.1.0867: cannot build Python interface with Python 2.4
commit https://github.com/vim/vim/commit/65951258d65b71581aeb117dbb7defa8a87ce38f
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Feb 1 22:10:16 2019 +0100
patch 8.1.0867: cannot build Python interface with Python 2.4
Problem: Cannot build Python interface with Python 2.4. (Tom G. Christensen)
Solution: Define PyBytes_FromStringAndSize. (Ken Takata, closes https://github.com/vim/vim/issues/3888)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 01 Feb 2019 22:15:12 +0100 |
parents | ee63f4fe3d45 |
children | a83c4b1f8ea2 |
rev | line source |
---|---|
14395
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
1 " Test for python 3 commands. |
10751
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 " TODO: move tests from test88.in here. |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 if !has('python3') |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 finish |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 endif |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 func Test_py3do() |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 " Check deleting lines does not trigger an ml_get error. |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 py3 import vim |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 new |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 call setline(1, ['one', 'two', 'three']) |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 py3do vim.command("%d_") |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 bwipe! |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 " Check switching to another buffer does not trigger an ml_get error. |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 new |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 let wincount = winnr('$') |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 call setline(1, ['one', 'two', 'three']) |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 py3do vim.command("new") |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 call assert_equal(wincount + 1, winnr('$')) |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 bwipe! |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 bwipe! |
27b42717662b
patch 8.0.0265: may get ml_get error when :pydo deletes lines
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 endfunc |
14395
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
25 |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
26 func Test_set_cursor() |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
27 " Check that setting the cursor position works. |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
28 py3 import vim |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
29 new |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
30 call setline(1, ['first line', 'second line']) |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
31 normal gg |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
32 py3do vim.current.window.cursor = (1, 5) |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
33 call assert_equal([1, 6], [line('.'), col('.')]) |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
34 |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
35 " Check that movement after setting cursor position keeps current column. |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
36 normal j |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
37 call assert_equal([2, 6], [line('.'), col('.')]) |
c15bef307de6
patch 8.1.0212: preferred cursor column not set in interfaces
Christian Brabandt <cb@256bit.org>
parents:
10751
diff
changeset
|
38 endfunc |
15234
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
39 |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
40 func Test_vim_function() |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
41 " Check creating vim.Function object |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
42 py3 import vim |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
43 |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
44 func s:foo() |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
45 return matchstr(expand('<sfile>'), '<SNR>\zs\d\+_foo$') |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
46 endfunc |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
47 let name = '<SNR>' . s:foo() |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
48 |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
49 try |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
50 py3 f = vim.bindeval('function("s:foo")') |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
51 call assert_equal(name, py3eval('f.name')) |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
52 catch |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
53 call assert_false(v:exception) |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
54 endtry |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
55 |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
56 try |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
57 py3 f = vim.Function(b'\x80\xfdR' + vim.eval('s:foo()').encode()) |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
58 call assert_equal(name, py3eval('f.name')) |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
59 catch |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
60 call assert_false(v:exception) |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
61 endtry |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
62 |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
63 py3 del f |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
64 delfunc s:foo |
ee63f4fe3d45
patch 8.1.0627: Python cannot handle function name of script-local function
Bram Moolenaar <Bram@vim.org>
parents:
14395
diff
changeset
|
65 endfunc |