Skip to content

Commit

Permalink
Merge heads
Browse files Browse the repository at this point in the history
  • Loading branch information
serhiy-storchaka committed Jul 7, 2014
2 parents 6f1435c + 0a0d1da commit 11116da
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 9 deletions.
11 changes: 6 additions & 5 deletions Lib/modulefinder.py
Original file line number Diff line number Diff line change
Expand Up @@ -568,11 +568,12 @@ def replace_paths_in_code(self, co):
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():
Expand Down
16 changes: 12 additions & 4 deletions Lib/test/test_modulefinder.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -308,9 +309,16 @@ def test_bytecode(self):
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()
3 changes: 3 additions & 0 deletions Misc/NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down

0 comments on commit 11116da

Please sign in to comment.