[pypy-commit] cffi default: merge with win32-zintegration which skips/fixes failures on win32 w/setuptools
mattip
noreply at buildbot.pypy.org
Tue Mar 10 21:46:43 CET 2015
Author: mattip <matti.picus at gmail.com>
Branch:
Changeset: r1664:edfbf69377b0
Date: 2015-03-10 22:48 +0200
http://bitbucket.org/cffi/cffi/changeset/edfbf69377b0/
Log: merge with win32-zintegration which skips/fixes failures on win32
w/setuptools
diff --git a/testing/test_zdistutils.py b/testing/test_zdistutils.py
--- a/testing/test_zdistutils.py
+++ b/testing/test_zdistutils.py
@@ -164,7 +164,8 @@
assert lib.sin(12.3) == math.sin(12.3)
v = ffi.verifier
ext = v.get_extension()
- assert 'distutils.extension.Extension' in str(ext.__class__)
+ assert 'distutils.extension.Extension' in str(ext.__class__) or \
+ 'setuptools.extension.Extension' in str(ext.__class__)
assert ext.sources == [maybe_relative_path(v.sourcefilename)]
assert ext.name == v.get_module_name()
assert ext.define_macros == [('TEST_EXTENSION_OBJECT', '1')]
@@ -193,7 +194,8 @@
assert lib.test1eoes(7.0) == 42.0
v = ffi.verifier
ext = v.get_extension()
- assert 'distutils.extension.Extension' in str(ext.__class__)
+ assert 'distutils.extension.Extension' in str(ext.__class__) or \
+ 'setuptools.extension.Extension' in str(ext.__class__)
assert ext.sources == [maybe_relative_path(v.sourcefilename),
extra_source]
assert ext.name == v.get_module_name()
diff --git a/testing/test_zintegration.py b/testing/test_zintegration.py
--- a/testing/test_zintegration.py
+++ b/testing/test_zintegration.py
@@ -3,6 +3,9 @@
import subprocess
from testing.udir import udir
+if sys.platform == 'win32':
+ py.test.skip('snippets do not run on win32')
+
def create_venv(name):
tmpdir = udir.join(name)
try:
@@ -12,6 +15,20 @@
except OSError as e:
py.test.skip("Cannot execute virtualenv: %s" % (e,))
+ try:
+ deepcopy = os.symlink
+ except:
+ import shutil, errno
+ def deepcopy(src, dst):
+ try:
+ shutil.copytree(src, dst)
+ except OSError as e:
+ if e.errno in (errno.ENOTDIR, errno.EINVAL):
+ shutil.copy(src, dst)
+ else:
+ print 'got errno',e.errno,'not',errno.ENOTDIR
+ raise
+
site_packages = None
for dirpath, dirnames, filenames in os.walk(str(tmpdir)):
if os.path.basename(dirpath) == 'site-packages':
@@ -31,7 +48,7 @@
modules += ('ply',) # needed for older versions of pycparser
for module in modules:
target = imp.find_module(module)[1]
- os.symlink(target, os.path.join(site_packages,
+ deepcopy(target, os.path.join(site_packages,
os.path.basename(target)))
return tmpdir
@@ -50,7 +67,11 @@
python_f.write(py.code.Source(python_snippet))
try:
os.chdir(str(SNIPPET_DIR.join(dirname)))
- vp = str(venv_dir.join('bin/python'))
+ if os.name == 'nt':
+ bindir = 'Scripts'
+ else:
+ bindir = 'bin'
+ vp = str(venv_dir.join(bindir).join('python'))
subprocess.check_call((vp, 'setup.py', 'clean'))
subprocess.check_call((vp, 'setup.py', 'install'))
subprocess.check_call((vp, str(python_f)))
More information about the pypy-commit
mailing list