summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cffi/setuptools_ext.py5
-rw-r--r--testing/cffi0/test_zintegration.py7
2 files changed, 7 insertions, 5 deletions
diff --git a/cffi/setuptools_ext.py b/cffi/setuptools_ext.py
index 211aebc..5b0f296 100644
--- a/cffi/setuptools_ext.py
+++ b/cffi/setuptools_ext.py
@@ -79,9 +79,10 @@ def _set_py_limited_api(Extension, kwds):
CPython itself should ignore the flag in a debugging version
(by not listing .abi3.so in the extensions it supports), but
it doesn't so far, creating troubles. That's why we check
- for "not sys.flags.debug". (http://bugs.python.org/issue28401)
+ for "not hasattr(sys, 'gettotalrefcount')" (the 2.7 compatible equivalent
+ of 'd' not in sys.abiflags). (http://bugs.python.org/issue28401)
"""
- if 'py_limited_api' not in kwds and not sys.flags.debug:
+ if 'py_limited_api' not in kwds and not hasattr(sys, 'gettotalrefcount'):
import setuptools
try:
setuptools_major_version = int(setuptools.__version__.partition('.')[0])
diff --git a/testing/cffi0/test_zintegration.py b/testing/cffi0/test_zintegration.py
index a1aeb39..d56dac2 100644
--- a/testing/cffi0/test_zintegration.py
+++ b/testing/cffi0/test_zintegration.py
@@ -156,20 +156,21 @@ class TestZIntegration(object):
except ImportError as e:
py.test.skip(str(e))
orig_version = setuptools.__version__
+ expecting_limited_api = not hasattr(sys, 'gettotalrefcount')
try:
setuptools.__version__ = '26.0.0'
from setuptools import Extension
kwds = _set_py_limited_api(Extension, {})
- assert kwds['py_limited_api'] == True
+ assert kwds.get('py_limited_api', False) == expecting_limited_api
setuptools.__version__ = '25.0'
kwds = _set_py_limited_api(Extension, {})
- assert not kwds
+ assert kwds.get('py_limited_api', False) == False
setuptools.__version__ = 'development'
kwds = _set_py_limited_api(Extension, {})
- assert kwds['py_limited_api'] == True
+ assert kwds.get('py_limited_api', False) == expecting_limited_api
finally:
setuptools.__version__ = orig_version