]> granicus.if.org Git - python/commitdiff
Fixed #7115: using paths instead of dotted name for extensions works too in distutils...
authorTarek Ziadé <ziade.tarek@gmail.com>
Mon, 12 Oct 2009 22:38:34 +0000 (22:38 +0000)
committerTarek Ziadé <ziade.tarek@gmail.com>
Mon, 12 Oct 2009 22:38:34 +0000 (22:38 +0000)
Lib/distutils/command/build_ext.py
Lib/distutils/tests/test_build_ext.py
Misc/NEWS

index da9cbfd574728bbe8f5232671c86763b37fa26d0..abc15841801ddf9dff6437061c207cb51a6de1e1 100644 (file)
@@ -628,6 +628,8 @@ class build_ext (Command):
         The file is located in `build_lib` or directly in the package
         (inplace option).
         """
+        if os.sep in ext_name:
+            ext_name = ext_name.replace(os.sep, '.')
         fullname = self.get_ext_fullname(ext_name)
         modpath = fullname.split('.')
         filename = self.get_ext_filename(ext_name)
index 00733a46a7d994360970fced68bd3655e30324fd..5dffe2ca03f3b3ec7eda3c748c582425c3365b43 100644 (file)
@@ -363,6 +363,16 @@ class BuildExtTestCase(support.TempdirManager,
         path = cmd.get_ext_fullpath('lxml.etree')
         self.assertEquals(wanted, path)
 
+    def test_build_ext_path_with_os_sep(self):
+        dist = Distribution({'name': 'UpdateManager'})
+        cmd = build_ext(dist)
+        cmd.ensure_finalized()
+        ext = sysconfig.get_config_var("SO")
+        ext_name = os.path.join('UpdateManager', 'fdsend')
+        ext_path = cmd.get_ext_fullpath(ext_name)
+        wanted = os.path.join(cmd.build_lib, 'UpdateManager', 'fdsend' + ext)
+        self.assertEquals(ext_path, wanted)
+
 def test_suite():
     if not sysconfig.python_build:
         if test_support.verbose:
index b4a2c50a6fd85610c1d28bc1bf309b36a8f51abd..26cbbb4143f1ca3b7d6c8545558712065be4d412 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -18,6 +18,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #7115: Fixed the extension module builds that is failing when using 
+  paths in the extension name instead of dotted names.
+
 - Issue #7068: Fixed the partial renaming that occured in r72594.
 
 - Issue #7064: Fixed the incompatibility with Setuptools in distutils