[Python-checkins] cpython (2.7): Issue #10881: Fix test_site failures with OS X framework builds.

ned.deily python-checkins at python.org
Mon Feb 6 01:00:44 CET 2012


http://hg.python.org/cpython/rev/82c4f094f811
changeset:   74802:82c4f094f811
branch:      2.7
parent:      74799:5452c881bd2d
user:        Ned Deily <nad at acm.org>
date:        Mon Feb 06 00:55:50 2012 +0100
summary:
  Issue #10881: Fix test_site failures with OS X framework builds.

files:
  Lib/site.py           |   2 +-
  Lib/sysconfig.py      |   5 +++--
  Lib/test/test_site.py |  26 +++++++++++++-------------
  Misc/NEWS             |   2 ++
  4 files changed, 19 insertions(+), 16 deletions(-)


diff --git a/Lib/site.py b/Lib/site.py
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -312,7 +312,7 @@
             # locations.
             from sysconfig import get_config_var
             framework = get_config_var("PYTHONFRAMEWORK")
-            if framework and "/%s.framework/"%(framework,) in prefix:
+            if framework:
                 sitepackages.append(
                         os.path.join("/Library", framework,
                             sys.version[:3], "site-packages"))
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -176,8 +176,9 @@
     if sys.platform == "darwin":
         framework = get_config_var("PYTHONFRAMEWORK")
         if framework:
-            return joinuser("~", "Library", framework, "%d.%d"%(
-                sys.version_info[:2]))
+            return env_base if env_base else \
+                               joinuser("~", "Library", framework, "%d.%d"
+                                            % (sys.version_info[:2]))
 
     return env_base if env_base else joinuser("~", ".local")
 
diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
--- a/Lib/test/test_site.py
+++ b/Lib/test/test_site.py
@@ -228,7 +228,19 @@
             self.assertEqual(len(dirs), 1)
             wanted = os.path.join('xoxo', 'Lib', 'site-packages')
             self.assertEqual(dirs[0], wanted)
+        elif (sys.platform == "darwin" and
+            sysconfig.get_config_var("PYTHONFRAMEWORK")):
+            # OS X framework builds
+            site.PREFIXES = ['Python.framework']
+            dirs = site.getsitepackages()
+            self.assertEqual(len(dirs), 3)
+            wanted = os.path.join('/Library',
+                                  sysconfig.get_config_var("PYTHONFRAMEWORK"),
+                                  sys.version[:3],
+                                  'site-packages')
+            self.assertEqual(dirs[2], wanted)
         elif os.sep == '/':
+            # OS X non-framwework builds, Linux, FreeBSD, etc
             self.assertEqual(len(dirs), 2)
             wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3],
                                   'site-packages')
@@ -236,24 +248,12 @@
             wanted = os.path.join('xoxo', 'lib', 'site-python')
             self.assertEqual(dirs[1], wanted)
         else:
+            # other platforms
             self.assertEqual(len(dirs), 2)
             self.assertEqual(dirs[0], 'xoxo')
             wanted = os.path.join('xoxo', 'lib', 'site-packages')
             self.assertEqual(dirs[1], wanted)
 
-        # let's try the specific Apple location
-        if (sys.platform == "darwin" and
-            sysconfig.get_config_var("PYTHONFRAMEWORK")):
-            site.PREFIXES = ['Python.framework']
-            dirs = site.getsitepackages()
-            self.assertEqual(len(dirs), 4)
-            wanted = os.path.join('~', 'Library', 'Python',
-                                  sys.version[:3], 'site-packages')
-            self.assertEqual(dirs[2], os.path.expanduser(wanted))
-            wanted = os.path.join('/Library', 'Python', sys.version[:3],
-                                  'site-packages')
-            self.assertEqual(dirs[3], wanted)
-
 class PthFile(object):
     """Helper class for handling testing of .pth files"""
 
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -90,6 +90,8 @@
 Library
 -------
 
+- Issue #10881: Fix test_site failures with OS X framework builds.
+
 - Issue #964437 Make IDLE help window non-modal.
   Patch by Guilherme Polo and Roger Serwy.
 

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


More information about the Python-checkins mailing list