]> granicus.if.org Git - python/commitdiff
Issue #21707: Add missing kwonlyargcount argument to ModuleFinder.replace_paths_in_c...
authorBerker Peksag <berker.peksag@gmail.com>
Mon, 7 Jul 2014 11:58:12 +0000 (14:58 +0300)
committerBerker Peksag <berker.peksag@gmail.com>
Mon, 7 Jul 2014 11:58:12 +0000 (14:58 +0300)
Lib/modulefinder.py
Lib/test/test_modulefinder.py
Misc/NEWS

index cc5b8cc691137b84e7abddb7187a45fb915261bf..b778e6094dd441808cc0005adada920b20ec9751 100644 (file)
@@ -568,11 +568,12 @@ class ModuleFinder:
             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():
index ed30d6fe3a45e554570a84622b4019c957b64156..b5fdcc80c0b9a410ef64949f53b39406e0777544 100644 (file)
@@ -245,11 +245,12 @@ def create_package(source):
 
 
 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 @@ class ModuleFinderTest(unittest.TestCase):
         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()
index 37d16eb5cfeada63012adf30a7f695668b1ae9d7..caa30ed74f308d2db4361d4c74e18ba63b7ba683 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,9 @@ Core and Builtins
 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.