[Python-checkins] cpython: Issue #15184: Some config variables in test_sysconfig_module

ned.deily python-checkins at python.org
Sun Jul 22 12:00:03 CEST 2012


http://hg.python.org/cpython/rev/c286d50ecd19
changeset:   78241:c286d50ecd19
user:        Ned Deily <nad at acm.org>
date:        Sun Jul 22 02:56:36 2012 -0700
summary:
  Issue #15184: Some config variables in test_sysconfig_module
may differ between sysconfig and distutils.sysconfig due to
compiler customizations on OS X.  For now, move those vars
into a separate test and skip if the customization has taken
place in distutils.  The long-term solution is to eliminate
having two sysconfig modules.

files:
  Lib/distutils/tests/test_sysconfig.py |  22 ++++++++++++++-
  1 files changed, 21 insertions(+), 1 deletions(-)


diff --git a/Lib/distutils/tests/test_sysconfig.py b/Lib/distutils/tests/test_sysconfig.py
--- a/Lib/distutils/tests/test_sysconfig.py
+++ b/Lib/distutils/tests/test_sysconfig.py
@@ -102,7 +102,27 @@
         import sysconfig as global_sysconfig
         self.assertEqual(global_sysconfig.get_config_var('CFLAGS'), sysconfig.get_config_var('CFLAGS'))
         self.assertEqual(global_sysconfig.get_config_var('LDFLAGS'), sysconfig.get_config_var('LDFLAGS'))
-        self.assertEqual(global_sysconfig.get_config_var('LDSHARED'),sysconfig.get_config_var('LDSHARED'))
+
+    @unittest.skipIf(sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'),'compiler flags customized')
+    def test_sysconfig_compiler_vars(self):
+        # On OS X, binary installers support extension module building on
+        # various levels of the operating system with differing Xcode
+        # configurations.  This requires customization of some of the
+        # compiler configuration directives to suit the environment on
+        # the installed machine.  Some of these customizations may require
+        # running external programs and, so, are deferred until needed by
+        # the first extension module build.  With Python 3.3, only
+        # the Distutils version of sysconfig is used for extension module
+        # builds, which happens earlier in the Distutils tests.  This may
+        # cause the following tests to fail since no tests have caused
+        # the global version of sysconfig to call the customization yet.
+        # The solution for now is to simply skip this test in this case.
+        # The longer-term solution is to only have one version of sysconfig.
+
+        import sysconfig as global_sysconfig
+        if sysconfig.get_config_var('CUSTOMIZED_OSX_COMPILER'):
+            return
+        self.assertEqual(global_sysconfig.get_config_var('LDSHARED'), sysconfig.get_config_var('LDSHARED'))
         self.assertEqual(global_sysconfig.get_config_var('CC'), sysconfig.get_config_var('CC'))
 
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list