| Index: tools/telemetry/third_party/rope/ropetest/refactor/multiprojecttest.py
|
| diff --git a/tools/telemetry/third_party/rope/ropetest/refactor/multiprojecttest.py b/tools/telemetry/third_party/rope/ropetest/refactor/multiprojecttest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1801f328134d8bc8b51c8a489a55e672384672cd
|
| --- /dev/null
|
| +++ b/tools/telemetry/third_party/rope/ropetest/refactor/multiprojecttest.py
|
| @@ -0,0 +1,70 @@
|
| +import unittest
|
| +
|
| +from rope.refactor import multiproject, rename, move
|
| +from ropetest import testutils
|
| +
|
| +
|
| +class MultiProjectRefactoringTest(unittest.TestCase):
|
| +
|
| + def setUp(self):
|
| + super(MultiProjectRefactoringTest, self).setUp()
|
| + self.project1 = testutils.sample_project(foldername='testproject1')
|
| + self.project2 = testutils.sample_project(foldername='testproject2')
|
| + self.mod1 = self.project1.root.create_file('mod1.py')
|
| + self.other = self.project1.root.create_file('other.py')
|
| + self.mod2 = self.project2.root.create_file('mod2.py')
|
| +
|
| + def tearDown(self):
|
| + testutils.remove_project(self.project1)
|
| + testutils.remove_project(self.project2)
|
| + super(MultiProjectRefactoringTest, self).tearDown()
|
| +
|
| + 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(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_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_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())
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|