summaryrefslogtreecommitdiff
path: root/setuptools/tests/test_build_ext.py
diff options
context:
space:
mode:
authorOfekmeister <ofekmeister@gmail.com>2016-08-20 13:29:16 -0400
committerOfekmeister <ofekmeister@gmail.com>2016-08-20 13:29:16 -0400
commit9e11ba01ef15138fc928f720967bb4899d8bde38 (patch)
treeefad3b70a7e4a8bd0d491eb1f94c588db9c5ee16 /setuptools/tests/test_build_ext.py
parent853a9df48cc056a07e17511a2b65918af9605bbc (diff)
parent06df852e7cda567b6f8ab6831486285f0e2989a4 (diff)
downloadpython-setuptools-git-9e11ba01ef15138fc928f720967bb4899d8bde38.tar.gz
Merge remote-tracking branch 'refs/remotes/pypa/master'
Diffstat (limited to 'setuptools/tests/test_build_ext.py')
-rw-r--r--setuptools/tests/test_build_ext.py28
1 files changed, 27 insertions, 1 deletions
diff --git a/setuptools/tests/test_build_ext.py b/setuptools/tests/test_build_ext.py
index 5168ebf0..ac002f44 100644
--- a/setuptools/tests/test_build_ext.py
+++ b/setuptools/tests/test_build_ext.py
@@ -1,7 +1,12 @@
+import sys
import distutils.command.build_ext as orig
+from distutils.sysconfig import get_config_var
-from setuptools.command.build_ext import build_ext
+from setuptools.extern import six
+
+from setuptools.command.build_ext import build_ext, get_abi3_suffix
from setuptools.dist import Distribution
+from setuptools.extension import Extension
class TestBuildExt:
@@ -18,3 +23,24 @@ class TestBuildExt:
res = cmd.get_ext_filename('foo')
wanted = orig.build_ext.get_ext_filename(cmd, 'foo')
assert res == wanted
+
+ def test_abi3_filename(self):
+ """
+ Filename needs to be loadable by several versions
+ of Python 3 if 'is_abi3' is truthy on Extension()
+ """
+ print(get_abi3_suffix())
+
+ extension = Extension('spam.eggs', ['eggs.c'], py_limited_api=True)
+ dist = Distribution(dict(ext_modules=[extension]))
+ cmd = build_ext(dist)
+ cmd.finalize_options()
+ assert 'spam.eggs' in cmd.ext_map
+ res = cmd.get_ext_filename('spam.eggs')
+
+ if six.PY2 or not get_abi3_suffix():
+ assert res.endswith(get_config_var('SO'))
+ elif sys.platform == 'win32':
+ assert res.endswith('eggs.pyd')
+ else:
+ assert 'abi3' in res