diff --git a/test/test_evaluate/init_extension_module/__init__.cpython-34m.so b/test/test_evaluate/init_extension_module/__init__.cpython-34m.so new file mode 100755 index 00000000..abfadc39 Binary files /dev/null and b/test/test_evaluate/init_extension_module/__init__.cpython-34m.so differ diff --git a/test/test_evaluate/init_extension_module/module.c b/test/test_evaluate/init_extension_module/module.c new file mode 100644 index 00000000..bfa06f6b --- /dev/null +++ b/test/test_evaluate/init_extension_module/module.c @@ -0,0 +1,15 @@ +#include "Python.h" + +static struct PyModuleDef module = { + PyModuleDef_HEAD_INIT, + "init_extension_module", + NULL, + -1, + NULL +}; + +PyMODINIT_FUNC PyInit_init_extension_module(void){ + PyObject *m = PyModule_Create(&module); + PyModule_AddObject(m, "foo", Py_None); + return m; +} diff --git a/test/test_evaluate/init_extension_module/setup.py b/test/test_evaluate/init_extension_module/setup.py new file mode 100644 index 00000000..5ce05177 --- /dev/null +++ b/test/test_evaluate/init_extension_module/setup.py @@ -0,0 +1,10 @@ +from distutils.core import setup, Extension + +setup(name='init_extension_module', + version='0.0', + description='', + ext_modules=[ + Extension('init_extension_module.__init__', + sources=['module.c']) + ] +) diff --git a/test/test_evaluate/test_extension.py b/test/test_evaluate/test_extension.py index 5a4bc375..83efc20b 100644 --- a/test/test_evaluate/test_extension.py +++ b/test/test_evaluate/test_extension.py @@ -5,6 +5,7 @@ import os import jedi from ..helpers import cwd_at +import pytest def test_completions(): @@ -32,6 +33,8 @@ def test_call_signatures_stdlib(): assert len(sigs[0].params) == 1 +# Check only on linux 64 bit platform and Python3.4. +@pytest.mark.skipif('sys.platform != "linux" or sys.maxsize <= 2**32 or sys.version_info[:2] != (3, 4)') @cwd_at('test/test_evaluate') def test_init_extension_module(): """ @@ -39,6 +42,13 @@ def test_init_extension_module(): that. Originally coming from #472. + + This test was built by the module.c and setup.py combination you can find + in the init_extension_module folder. You can easily build the + `__init__.cpython-34m.so` by compiling it (create a virtualenv and run + `setup.py install`. + + This is also why this test only runs on certain systems (and Python 3.4). """ s = jedi.Script('import init_extension_module as i\ni.', path='not_existing.py') assert 'foo' in [c.name for c in s.completions()]