OLD | NEW |
(Empty) | |
| 1 import unittest |
| 2 |
| 3 from rope.refactor import multiproject, rename, move |
| 4 from ropetest import testutils |
| 5 |
| 6 |
| 7 class MultiProjectRefactoringTest(unittest.TestCase): |
| 8 |
| 9 def setUp(self): |
| 10 super(MultiProjectRefactoringTest, self).setUp() |
| 11 self.project1 = testutils.sample_project(foldername='testproject1') |
| 12 self.project2 = testutils.sample_project(foldername='testproject2') |
| 13 self.mod1 = self.project1.root.create_file('mod1.py') |
| 14 self.other = self.project1.root.create_file('other.py') |
| 15 self.mod2 = self.project2.root.create_file('mod2.py') |
| 16 |
| 17 def tearDown(self): |
| 18 testutils.remove_project(self.project1) |
| 19 testutils.remove_project(self.project2) |
| 20 super(MultiProjectRefactoringTest, self).tearDown() |
| 21 |
| 22 def test_trivial_rename(self): |
| 23 self.mod1.write('var = 1\n') |
| 24 refactoring = multiproject.MultiProjectRefactoring( |
| 25 rename.Rename, []) |
| 26 renamer = refactoring(self.project1, self.mod1, 1) |
| 27 multiproject.perform(renamer.get_all_changes('newvar')) |
| 28 self.assertEquals('newvar = 1\n', self.mod1.read()) |
| 29 |
| 30 def test_rename(self): |
| 31 self.mod1.write('var = 1\n') |
| 32 self.mod2.write('import mod1\nmyvar = mod1.var\n') |
| 33 refactoring = multiproject.MultiProjectRefactoring( |
| 34 rename.Rename, [self.project2]) |
| 35 renamer = refactoring(self.project1, self.mod1, 1) |
| 36 multiproject.perform(renamer.get_all_changes('newvar')) |
| 37 self.assertEquals('newvar = 1\n', self.mod1.read()) |
| 38 self.assertEquals('import mod1\nmyvar = mod1.newvar\n', |
| 39 self.mod2.read()) |
| 40 |
| 41 def test_move(self): |
| 42 self.mod1.write('def a_func():\n pass\n') |
| 43 self.mod2.write('import mod1\nmyvar = mod1.a_func()\n') |
| 44 refactoring = multiproject.MultiProjectRefactoring( |
| 45 move.create_move, [self.project2]) |
| 46 renamer = refactoring(self.project1, self.mod1, |
| 47 self.mod1.read().index('_func')) |
| 48 multiproject.perform(renamer.get_all_changes(self.other)) |
| 49 self.assertEquals('', self.mod1.read()) |
| 50 self.assertEquals('def a_func():\n pass\n', self.other.read()) |
| 51 self.assertEquals( |
| 52 'import mod1\nimport other\nmyvar = other.a_func()\n', |
| 53 self.mod2.read()) |
| 54 |
| 55 def test_rename_from_the_project_not_containing_the_change(self): |
| 56 self.project2.get_prefs().add('python_path', self.project1.address) |
| 57 self.mod1.write('var = 1\n') |
| 58 self.mod2.write('import mod1\nmyvar = mod1.var\n') |
| 59 refactoring = multiproject.MultiProjectRefactoring( |
| 60 rename.Rename, [self.project1]) |
| 61 renamer = refactoring(self.project2, self.mod2, |
| 62 self.mod2.read().rindex('var')) |
| 63 multiproject.perform(renamer.get_all_changes('newvar')) |
| 64 self.assertEquals('newvar = 1\n', self.mod1.read()) |
| 65 self.assertEquals('import mod1\nmyvar = mod1.newvar\n', |
| 66 self.mod2.read()) |
| 67 |
| 68 |
| 69 if __name__ == '__main__': |
| 70 unittest.main() |
OLD | NEW |