1# mode: run
2# tag: pep489
3
4PYTHON setup.py build_ext --inplace
5PYTHON -c "import a"
6
7######## setup.py ########
8
9from Cython.Build.Dependencies import cythonize
10from distutils.core import setup
11
12setup(
13    ext_modules = cythonize("**/*.pyx"),
14    )
15
16######## a.pyx ########
17
18import sys
19import a
20assert a in sys.modules.values(), list(sys.modules)
21assert sys.modules['a'] is a, list(sys.modules)
22
23from atest.package import module
24
25######## atest/__init__.py ########
26
27######## atest/package/__init__.py ########
28
29######## atest/package/module.pyx ########
30
31import sys
32assert 'atest.package.module' in sys.modules
33
34import a
35import atest.package.module as module
36assert module in sys.modules.values(), list(sys.modules)
37assert sys.modules['atest.package.module'] is module, list(sys.modules)
38
39if sys.version_info >= (3, 5):
40    from . import pymodule
41    assert module is pymodule.import_without_package()
42
43######## atest/package/pymodule.py ########
44
45from . import module
46from ..package import module
47import atest.package.module
48
49import a
50
51def import_without_package():
52    import os.path
53    import sys
54    sys.path.insert(0, os.path.dirname(__file__))
55    sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
56    import module
57    import package.module
58    assert package.module is module
59    return module
60