Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: tools/telemetry/third_party/rope/ropetest/refactor/multiprojecttest.py

Issue 1132103009: Example of refactoring using rope library. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698