[Python-checkins] cpython: Make regrtest look at internal dicts in sysconfig.

eric.araujo python-checkins at python.org
Mon Sep 19 16:11:01 CEST 2011


http://hg.python.org/cpython/rev/9c61f46ea6b4
changeset:   72410:9c61f46ea6b4
user:        Éric Araujo <merwok at netwok.org>
date:        Mon Sep 19 05:10:45 2011 +0200
summary:
  Make regrtest look at internal dicts in sysconfig.

This reveals problems in the packaging test suite, which I’ll look
into after the regrtest checks are made more usable (see #12314).

files:
  Lib/test/regrtest.py |  25 ++++++++++++++++++++++++-
  1 files changed, 24 insertions(+), 1 deletions(-)


diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -965,7 +965,9 @@
                  'warnings.filters', 'asyncore.socket_map',
                  'logging._handlers', 'logging._handlerList', 'sys.gettrace',
                  'sys.warnoptions', 'threading._dangling',
-                 'multiprocessing.process._dangling')
+                 'multiprocessing.process._dangling',
+                 'sysconfig._CONFIG_VARS', 'sysconfig._SCHEMES',
+                )
 
     def get_sys_argv(self):
         return id(sys.argv), sys.argv, sys.argv[:]
@@ -1083,6 +1085,27 @@
         multiprocessing.process._dangling.clear()
         multiprocessing.process._dangling.update(saved)
 
+    def get_sysconfig__CONFIG_VARS(self):
+        # make sure the dict is initialized
+        sysconfig.get_config_var('prefix')
+        return (id(sysconfig._CONFIG_VARS), sysconfig._CONFIG_VARS,
+                dict(sysconfig._CONFIG_VARS))
+    def restore_sysconfig__CONFIG_VARS(self, saved):
+        sysconfig._CONFIG_VARS = saved[1]
+        sysconfig._CONFIG_VARS.clear()
+        sysconfig._CONFIG_VARS.update(saved[2])
+
+    def get_sysconfig__SCHEMES(self):
+        # it's mildly evil to look at the internal attribute, but it's easier
+        # than copying a RawConfigParser object
+        return (id(sysconfig._SCHEMES), sysconfig._SCHEMES._sections,
+                sysconfig._SCHEMES._sections.copy())
+    def restore_sysconfig__SCHEMES(self, saved):
+        sysconfig._SCHEMES._sections = saved[1]
+        sysconfig._SCHEMES._sections.clear()
+        sysconfig._SCHEMES._sections.update(saved[2])
+
+
     def resource_info(self):
         for name in self.resources:
             method_suffix = name.replace('.', '_')

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


More information about the Python-checkins mailing list