def test_rename_across_files(): files = { 'foo': dedent( """ def old(): pass """), 'bar': dedent( """ from foo import old old() """)} refactoring = Rename(files={m: f.split('\n') for m, f in files.items()}) refactoring.initialize( module='bar', position=Position(row=2, column=0), old_name='old', new_name='new') refactoring.apply() assert refactoring.get_result('foo') == dedent(""" def new(): pass """) assert refactoring.get_result('bar') == dedent(""" from foo import new new() """)
def rename(source, cursor, old_name, new_name): refactoring = Rename(files={'module': source.split('\n')}) refactoring.initialize( module='module', position=cursor, old_name=old_name, new_name=new_name) refactoring.apply() return refactoring.get_result('module')