[Jython-checkins] jython: A first pass at sysconfig.

frank.wierzbicki jython-checkins at python.org
Thu Mar 22 04:18:21 CET 2012


http://hg.python.org/jython/rev/7599a681564a
changeset:   6467:7599a681564a
user:        Frank Wierzbicki <fwierzbicki at gmail.com>
date:        Wed Mar 21 20:18:13 2012 -0700
summary:
  A first pass at sysconfig.

files:
  Lib/sysconfig.py           |  22 +++++++++++++++++++++-
  Lib/test/test_sysconfig.py |  18 ++++++++++++------
  2 files changed, 33 insertions(+), 7 deletions(-)


diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -82,6 +82,26 @@
         'scripts': '{userbase}/bin',
         'data'   : '{userbase}',
         },
+    'java': {
+        'stdlib': '{base}/lib/jython',
+        'platstdlib': '{base}/lib/jython',
+        'purelib': '{base}/lib/jython',
+        'platlib': '{base}/lib/jython',
+        'include': '{base}/include/jython',
+        'platinclude': '{base}/include/jython',
+        'scripts': '{base}/bin',
+        'data'   : '{base}',
+        },
+
+    'java_user': {
+        'stdlib': '{userbase}/lib/jython{py_version_short}',
+        'platstdlib': '{userbase}/lib/jython{py_version_short}',
+        'purelib': '{userbase}/lib/jython{py_version_short}/site-packages',
+        'platlib': '{userbase}/lib/jython{py_version_short}/site-packages',
+        'include': '{userbase}/include/jython{py_version_short}',
+        'scripts': '{userbase}/bin',
+        'data'   : '{userbase}',
+        },
     }
 
 _SCHEME_KEYS = ('stdlib', 'platstdlib', 'purelib', 'platlib', 'include',
@@ -152,7 +172,7 @@
     _extend_dict(vars, get_config_vars())
 
     for key, value in _INSTALL_SCHEMES[scheme].items():
-        if os.name in ('posix', 'nt'):
+        if os.name in ('posix', 'nt', 'java'):
             value = os.path.expanduser(value)
         res[key] = os.path.normpath(_subst_vars(value, vars))
     return res
diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py
--- a/Lib/test/test_sysconfig.py
+++ b/Lib/test/test_sysconfig.py
@@ -7,7 +7,8 @@
 import subprocess
 from copy import copy, deepcopy
 
-from test.test_support import run_unittest, TESTFN, unlink, get_attribute
+from test.test_support import (run_unittest, TESTFN, unlink, get_attribute,
+                               is_jython)
 
 import sysconfig
 from sysconfig import (get_paths, get_platform, get_config_vars,
@@ -33,7 +34,8 @@
         # saving the environment
         self.name = os.name
         self.platform = sys.platform
-        self.version = sys.version
+        if not is_jython:
+            self.version = sys.version
         self.sep = os.sep
         self.join = os.path.join
         self.isabs = os.path.isabs
@@ -53,7 +55,8 @@
             del os.uname
         os.name = self.name
         sys.platform = self.platform
-        sys.version = self.version
+        if not is_jython:
+            sys.version = self.version
         os.sep = self.sep
         os.path.join = self.join
         os.path.isabs = self.isabs
@@ -106,6 +109,7 @@
         self.assertIsInstance(cvars, dict)
         self.assertTrue(cvars)
 
+    @unittest.skipIf(is_jython, "Not on Jython")
     def test_get_platform(self):
         # windows XP, 32bits
         os.name = 'nt'
@@ -225,14 +229,16 @@
 
         # XXX more platforms to tests here
 
+    @unittest.skipIf(is_jython, "config.h not relevent to Jython")
     def test_get_config_h_filename(self):
         config_h = sysconfig.get_config_h_filename()
         self.assertTrue(os.path.isfile(config_h), config_h)
 
     def test_get_scheme_names(self):
-        wanted = ('nt', 'nt_user', 'os2', 'os2_home', 'osx_framework_user',
-                  'posix_home', 'posix_prefix', 'posix_user')
-        self.assertEqual(get_scheme_names(), wanted)
+        wanted = {'nt', 'nt_user', 'os2', 'os2_home', 'osx_framework_user',
+                  'posix_home', 'posix_prefix', 'posix_user', 'java',
+                  'java_user'}
+        self.assertEqual({name for name in get_scheme_names()}, wanted)
 
     def test_symlink(self):
         # Issue 7880

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


More information about the Jython-checkins mailing list