[Python-checkins] cpython (merge 3.4 -> 3.4): Merge heads

serhiy.storchaka python-checkins at python.org
Mon Jul 7 14:20:25 CEST 2014


http://hg.python.org/cpython/rev/04a2f86539b5
changeset:   91581:04a2f86539b5
branch:      3.4
parent:      91578:5ac811cbec87
parent:      91575:59921d2f023c
user:        Serhiy Storchaka <storchaka at gmail.com>
date:        Mon Jul 07 15:18:22 2014 +0300
summary:
  Merge heads

files:
  Lib/modulefinder.py           |  11 ++++++-----
  Lib/test/test_modulefinder.py |  16 ++++++++++++----
  Misc/NEWS                     |   3 +++
  3 files changed, 21 insertions(+), 9 deletions(-)


diff --git a/Lib/modulefinder.py b/Lib/modulefinder.py
--- a/Lib/modulefinder.py
+++ b/Lib/modulefinder.py
@@ -568,11 +568,12 @@
             if isinstance(consts[i], type(co)):
                 consts[i] = self.replace_paths_in_code(consts[i])
 
-        return types.CodeType(co.co_argcount, co.co_nlocals, co.co_stacksize,
-                         co.co_flags, co.co_code, tuple(consts), co.co_names,
-                         co.co_varnames, new_filename, co.co_name,
-                         co.co_firstlineno, co.co_lnotab,
-                         co.co_freevars, co.co_cellvars)
+        return types.CodeType(co.co_argcount, co.co_kwonlyargcount,
+                              co.co_nlocals, co.co_stacksize, co.co_flags,
+                              co.co_code, tuple(consts), co.co_names,
+                              co.co_varnames, new_filename, co.co_name,
+                              co.co_firstlineno, co.co_lnotab, co.co_freevars,
+                              co.co_cellvars)
 
 
 def test():
diff --git a/Lib/test/test_modulefinder.py b/Lib/test/test_modulefinder.py
--- a/Lib/test/test_modulefinder.py
+++ b/Lib/test/test_modulefinder.py
@@ -245,11 +245,12 @@
 
 
 class ModuleFinderTest(unittest.TestCase):
-    def _do_test(self, info, report=False):
+    def _do_test(self, info, report=False, debug=0, replace_paths=[]):
         import_this, modules, missing, maybe_missing, source = info
         create_package(source)
         try:
-            mf = modulefinder.ModuleFinder(path=TEST_PATH)
+            mf = modulefinder.ModuleFinder(path=TEST_PATH, debug=debug,
+                                           replace_paths=replace_paths)
             mf.import_hook(import_this)
             if report:
                 mf.report()
@@ -308,9 +309,16 @@
         os.remove(source_path)
         self._do_test(bytecode_test)
 
+    def test_replace_paths(self):
+        old_path = os.path.join(TEST_DIR, 'a', 'module.py')
+        new_path = os.path.join(TEST_DIR, 'a', 'spam.py')
+        with support.captured_stdout() as output:
+            self._do_test(maybe_test, debug=2,
+                          replace_paths=[(old_path, new_path)])
+        output = output.getvalue()
+        expected = "co_filename '%s' changed to '%s'" % (old_path, new_path)
+        self.assertIn(expected, output)
 
-def test_main():
-    support.run_unittest(ModuleFinderTest)
 
 if __name__ == "__main__":
     unittest.main()
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,9 @@
 Library
 -------
 
+- Issue #21707: Add missing kwonlyargcount argument to
+  ModuleFinder.replace_paths_in_code().
+
 - Issue #20639: calling Path.with_suffix('') allows removing the suffix
   again.  Patch by July Tikhonov.
 

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


More information about the Python-checkins mailing list