def test_trivial_rename(self): self.mod1.write('var = 1\n') refactoring = multiproject.MultiProjectRefactoring( rename.Rename, []) renamer = refactoring(self.project1, self.mod1, 1) multiproject.perform(renamer.get_all_changes('newvar')) self.assertEquals('newvar = 1\n', self.mod1.read())
def test_rename_from_the_project_not_containing_the_change(self): self.project2.get_prefs().add("python_path", self.project1.address) self.mod1.write("var = 1\n") self.mod2.write( dedent("""\ import mod1 myvar = mod1.var """) ) refactoring = multiproject.MultiProjectRefactoring( rename.Rename, [self.project1] ) renamer = refactoring(self.project2, self.mod2, self.mod2.read().rindex("var")) multiproject.perform(renamer.get_all_changes("newvar")) self.assertEqual( dedent("""\ newvar = 1 """), self.mod1.read(), ) self.assertEqual( dedent("""\ import mod1 myvar = mod1.newvar """), self.mod2.read(), )
def test_move(self): self.mod1.write( dedent("""\ def a_func(): pass """) ) self.mod2.write( dedent("""\ import mod1 myvar = mod1.a_func() """) ) refactoring = multiproject.MultiProjectRefactoring( move.create_move, [self.project2] ) renamer = refactoring(self.project1, self.mod1, self.mod1.read().index("_func")) multiproject.perform(renamer.get_all_changes(self.other)) self.assertEqual("", self.mod1.read()) self.assertEqual( dedent("""\ def a_func(): pass """), self.other.read(), ) self.assertEqual( dedent("""\ import other myvar = other.a_func() """), self.mod2.read(), )
def test_rename(self): self.mod1.write("var = 1\n") self.mod2.write("import mod1\nmyvar = mod1.var\n") refactoring = multiproject.MultiProjectRefactoring(rename.Rename, [self.project2]) renamer = refactoring(self.project1, self.mod1, 1) multiproject.perform(renamer.get_all_changes("newvar")) self.assertEquals("newvar = 1\n", self.mod1.read()) self.assertEquals("import mod1\nmyvar = mod1.newvar\n", self.mod2.read())
def test_rename_from_the_project_not_containing_the_change(self): self.project2.get_prefs().add("python_path", self.project1.address) self.mod1.write("var = 1\n") self.mod2.write("import mod1\nmyvar = mod1.var\n") refactoring = multiproject.MultiProjectRefactoring(rename.Rename, [self.project1]) renamer = refactoring(self.project2, self.mod2, self.mod2.read().rindex("var")) multiproject.perform(renamer.get_all_changes("newvar")) self.assertEquals("newvar = 1\n", self.mod1.read()) self.assertEquals("import mod1\nmyvar = mod1.newvar\n", self.mod2.read())
def test_move(self): self.mod1.write("def a_func():\n pass\n") self.mod2.write("import mod1\nmyvar = mod1.a_func()\n") refactoring = multiproject.MultiProjectRefactoring(move.create_move, [self.project2]) renamer = refactoring(self.project1, self.mod1, self.mod1.read().index("_func")) multiproject.perform(renamer.get_all_changes(self.other)) self.assertEquals("", self.mod1.read()) self.assertEquals("def a_func():\n pass\n", self.other.read()) self.assertEquals("import mod1\nimport other\nmyvar = other.a_func()\n", self.mod2.read())
def test_rename(self): self.mod1.write('var = 1\n') self.mod2.write('import mod1\nmyvar = mod1.var\n') refactoring = multiproject.MultiProjectRefactoring( rename.Rename, [self.project2]) renamer = refactoring(self.project1, self.mod1, 1) multiproject.perform(renamer.get_all_changes('newvar')) self.assertEquals('newvar = 1\n', self.mod1.read()) self.assertEquals('import mod1\nmyvar = mod1.newvar\n', self.mod2.read())
def test_rename_from_the_project_not_containing_the_change(self): self.project2.get_prefs().add('python_path', self.project1.address) self.mod1.write('var = 1\n') self.mod2.write('import mod1\nmyvar = mod1.var\n') refactoring = multiproject.MultiProjectRefactoring( rename.Rename, [self.project1]) renamer = refactoring(self.project2, self.mod2, self.mod2.read().rindex('var')) multiproject.perform(renamer.get_all_changes('newvar')) self.assertEquals('newvar = 1\n', self.mod1.read()) self.assertEquals('import mod1\nmyvar = mod1.newvar\n', self.mod2.read())
def test_move(self): self.mod1.write('def a_func():\n pass\n') self.mod2.write('import mod1\nmyvar = mod1.a_func()\n') refactoring = multiproject.MultiProjectRefactoring( move.create_move, [self.project2]) renamer = refactoring(self.project1, self.mod1, self.mod1.read().index('_func')) multiproject.perform(renamer.get_all_changes(self.other)) self.assertEquals('', self.mod1.read()) self.assertEquals('def a_func():\n pass\n', self.other.read()) self.assertEquals('import other\nmyvar = other.a_func()\n', self.mod2.read())
def test_rename(self): self.mod1.write("var = 1\n") self.mod2.write( dedent("""\ import mod1 myvar = mod1.var """) ) refactoring = multiproject.MultiProjectRefactoring( rename.Rename, [self.project2] ) renamer = refactoring(self.project1, self.mod1, 1) multiproject.perform(renamer.get_all_changes("newvar")) self.assertEqual("newvar = 1\n", self.mod1.read()) self.assertEqual( dedent("""\ import mod1 myvar = mod1.newvar """), self.mod2.read(), )
def apply_pending_changes(_, main_project, multiproj, pending_changes): """ Apply pending changes. """ try: main_project.validate() pending_changes = pending_changes if multiproj: try: multiproject.perform(pending_changes) except TypeError: main_project.do(pending_changes) else: main_project.do(pending_changes) except Exception as e: error = RefactoringError() error.exc = str(e) error.traceback = traceback.format_exc() error.critical = True return error else: return True
def test_trivial_rename(self): self.mod1.write('var = 1\n') refactoring = multiproject.MultiProjectRefactoring(rename.Rename, []) renamer = refactoring(self.project1, self.mod1, 1) multiproject.perform(renamer.get_all_changes('newvar')) self.assertEquals('newvar = 1\n', self.mod1.read())
def perform(self): "Perform the refactoring." assert not self._performed multiproject.perform(self.changes) self._performed = True
def perform(self): "Perform the refactoring." multiproject.perform(self.changes)