Commit bf94d914 authored by Neil Schemenauer's avatar Neil Schemenauer

Fix test_build_ext.py to work when building in a separate directory.

Since "srcdir" should now be defined on all platforms, use it to
find the module source.
parent d1ea6199
...@@ -11,6 +11,10 @@ from distutils import sysconfig ...@@ -11,6 +11,10 @@ from distutils import sysconfig
import unittest import unittest
from test import test_support from test import test_support
def _get_source_filename():
srcdir = sysconfig.get_config_var('srcdir')
return os.path.join(srcdir, 'Modules', 'xxmodule.c')
class BuildExtTestCase(unittest.TestCase): class BuildExtTestCase(unittest.TestCase):
def setUp(self): def setUp(self):
# Create a simple test environment # Create a simple test environment
...@@ -18,9 +22,7 @@ class BuildExtTestCase(unittest.TestCase): ...@@ -18,9 +22,7 @@ class BuildExtTestCase(unittest.TestCase):
self.tmp_dir = tempfile.mkdtemp(prefix="pythontest_") self.tmp_dir = tempfile.mkdtemp(prefix="pythontest_")
self.sys_path = sys.path[:] self.sys_path = sys.path[:]
sys.path.append(self.tmp_dir) sys.path.append(self.tmp_dir)
shutil.copy(_get_source_filename(), self.tmp_dir)
xx_c = os.path.join(sysconfig.project_base, 'Modules', 'xxmodule.c')
shutil.copy(xx_c, self.tmp_dir)
def test_build_ext(self): def test_build_ext(self):
xx_c = os.path.join(self.tmp_dir, 'xxmodule.c') xx_c = os.path.join(self.tmp_dir, 'xxmodule.c')
...@@ -66,9 +68,11 @@ class BuildExtTestCase(unittest.TestCase): ...@@ -66,9 +68,11 @@ class BuildExtTestCase(unittest.TestCase):
shutil.rmtree(self.tmp_dir, os.name == 'nt' or sys.platform == 'cygwin') shutil.rmtree(self.tmp_dir, os.name == 'nt' or sys.platform == 'cygwin')
def test_suite(): def test_suite():
if not sysconfig.python_build: src = _get_source_filename()
if not os.path.exists(src):
if test_support.verbose: if test_support.verbose:
print 'test_build_ext: The test must be run in a python build dir' print ('test_build_ext: Cannot find source code (test'
' must run in python build dir)')
return unittest.TestSuite() return unittest.TestSuite()
else: return unittest.makeSuite(BuildExtTestCase) else: return unittest.makeSuite(BuildExtTestCase)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment