Fix parsing of packaging’s build_ext --libraries option (#1326113)
authorÉric Araujo <merwok@netwok.org>
Wed, 15 Feb 2012 16:25:25 +0000 (17:25 +0100)
committerÉric Araujo <merwok@netwok.org>
Wed, 15 Feb 2012 16:25:25 +0000 (17:25 +0100)
Lib/packaging/command/build_ext.py
Lib/packaging/tests/test_command_build_ext.py
Misc/NEWS

index 4f375b66684ac4e74e1d9afabf66d265c6724e3d..4c85822a92655ef0a58c223ce4111ce8c6cb95cc 100644 (file)
@@ -159,8 +159,7 @@ class build_ext(Command):
         if plat_py_include != py_include:
             self.include_dirs.append(plat_py_include)
 
-        if isinstance(self.libraries, str):
-            self.libraries = [self.libraries]
+        self.ensure_string_list('libraries')
 
         # Life is easier if we're not forever checking for None, so
         # simplify these options to empty lists if unset
index 4883f38a56bff8d42c4783851c77f44b305809fa..161b00081ddad1bd246c0b6ad8e5bcd5befa0257 100644 (file)
@@ -141,21 +141,21 @@ class BuildExtTestCase(support.TempdirManager,
         # make sure cmd.libraries is turned into a list
         # if it's a string
         cmd = build_ext(dist)
-        cmd.libraries = 'my_lib'
+        cmd.libraries = 'my_lib, other_lib lastlib'
         cmd.finalize_options()
-        self.assertEqual(cmd.libraries, ['my_lib'])
+        self.assertEqual(cmd.libraries, ['my_lib', 'other_lib', 'lastlib'])
 
         # make sure cmd.library_dirs is turned into a list
         # if it's a string
         cmd = build_ext(dist)
-        cmd.library_dirs = 'my_lib_dir'
+        cmd.library_dirs = 'my_lib_dir%sother_lib_dir' % os.pathsep
         cmd.finalize_options()
-        self.assertIn('my_lib_dir', cmd.library_dirs)
+        self.assertEqual(cmd.library_dirs, ['my_lib_dir', 'other_lib_dir'])
 
         # make sure rpath is turned into a list
-        # if it's a list of os.pathsep's paths
+        # if it's a string
         cmd = build_ext(dist)
-        cmd.rpath = os.pathsep.join(['one', 'two'])
+        cmd.rpath = 'one%stwo' % os.pathsep
         cmd.finalize_options()
         self.assertEqual(cmd.rpath, ['one', 'two'])
 
index 1e67160a4b265e2d5ec6b1744c49e3077917f99d..faef50aebaac9b78c18ceee8a12a250c473acd47 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -472,8 +472,9 @@ Library
 - Issue #13015: Fix a possible reference leak in defaultdict.__repr__.
   Patch by Suman Saha.
 
-- Issue #1326113: distutils' build_ext command --libraries option now
-  correctly parses multiple values separated by whitespace or commas.
+- Issue #1326113: distutils' and packaging's build_ext commands option now
+  correctly parses multiple values (separated by whitespace or commas) given
+  to their --libraries option.
 
 - Issue #10287: nntplib now queries the server's CAPABILITIES first before
   sending MODE READER, and only sends it if not already in READER mode.