]> granicus.if.org Git - python/commitdiff
Issue #15184: Some config variables in test_sysconfig_module
authorNed Deily <nad@acm.org>
Sun, 22 Jul 2012 09:56:36 +0000 (02:56 -0700)
committerNed Deily <nad@acm.org>
Sun, 22 Jul 2012 09:56:36 +0000 (02:56 -0700)
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.

Lib/distutils/tests/test_sysconfig.py

index fbe26bf65d6427b08ba3fd248a68f4cf29c9bd05..545ef3b548389d348f44417983ee8f02854b670f 100644 (file)
@@ -102,7 +102,27 @@ class SysconfigTestCase(support.EnvironGuard,
         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'))