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

Side by Side Diff: tools/telemetry/third_party/rope/ropetest/refactor/suitestest.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.base import ast
4 from rope.refactor import suites
5
6
7 class SuiteTest(unittest.TestCase):
8
9 def setUp(self):
10 super(SuiteTest, self).setUp()
11
12 def tearDown(self):
13 super(SuiteTest, self).tearDown()
14
15 def test_trivial_case(self):
16 root = source_suite_tree('')
17 self.assertEquals(1, root.get_start())
18 self.assertEquals(0, len(root.get_children()))
19
20 def test_simple_ifs(self):
21 root = source_suite_tree('if True:\n pass')
22 self.assertEquals(1, len(root.get_children()))
23
24 def test_simple_else(self):
25 root = source_suite_tree(
26 'if True:\n pass\nelse:\n pass\n')
27 self.assertEquals(2, len(root.get_children()))
28 self.assertEquals(1, root.get_children()[1].get_start())
29
30 def test_for(self):
31 root = source_suite_tree(
32 '\nfor i in range(10):\n pass\nelse:\n pass\n')
33 self.assertEquals(2, len(root.get_children()))
34 self.assertEquals(2, root.get_children()[1].get_start())
35
36 def test_while(self):
37 root = source_suite_tree(
38 'while True:\n pass\n')
39 self.assertEquals(1, len(root.get_children()))
40 self.assertEquals(1, root.get_children()[0].get_start())
41
42 def test_with(self):
43 root = source_suite_tree(
44 'from __future__ import with_statement\nwith file(x): pass\n')
45 self.assertEquals(1, len(root.get_children()))
46 self.assertEquals(2, root.get_children()[0].get_start())
47
48 def test_try_finally(self):
49 root = source_suite_tree(
50 'try:\n pass\nfinally:\n pass\n')
51 self.assertEquals(2, len(root.get_children()))
52 self.assertEquals(1, root.get_children()[0].get_start())
53
54 def test_try_except(self):
55 root = source_suite_tree(
56 'try:\n pass\nexcept:\n pass\nelse:\n pass\n')
57 self.assertEquals(3, len(root.get_children()))
58 self.assertEquals(1, root.get_children()[2].get_start())
59
60 def test_try_except_finally(self):
61 root = source_suite_tree(
62 'try:\n pass\nexcept:\n pass\nfinally:\n pass\n')
63 self.assertEquals(3, len(root.get_children()))
64 self.assertEquals(1, root.get_children()[2].get_start())
65
66 def test_local_start_and_end(self):
67 root = source_suite_tree('if True:\n pass\nelse:\n pass\n')
68 self.assertEquals(1, root.local_start())
69 self.assertEquals(4, root.local_end())
70 if_suite = root.get_children()[0]
71 self.assertEquals(2, if_suite.local_start())
72 self.assertEquals(2, if_suite.local_end())
73 else_suite = root.get_children()[1]
74 self.assertEquals(4, else_suite.local_start())
75 self.assertEquals(4, else_suite.local_end())
76
77 def test_find_suite(self):
78 root = source_suite_tree('\n')
79 self.assertEquals(root, root.find_suite(1))
80
81 def test_find_suite_for_ifs(self):
82 root = source_suite_tree('if True:\n pass\n')
83 if_suite = root.get_children()[0]
84 self.assertEquals(if_suite, root.find_suite(2))
85
86 def test_find_suite_for_between_suites(self):
87 root = source_suite_tree(
88 'if True:\n pass\nprint(1)\nif True:\n pass\n')
89 if_suite1 = root.get_children()[0]
90 if_suite2 = root.get_children()[1]
91 self.assertEquals(if_suite1, root.find_suite(2))
92 self.assertEquals(if_suite2, root.find_suite(5))
93 self.assertEquals(root, root.find_suite(3))
94
95 def test_simple_find_visible(self):
96 root = source_suite_tree('a = 1\n')
97 self.assertEquals(1, suites.find_visible_for_suite(root, [1]))
98
99 def test_simple_find_visible_ifs(self):
100 root = source_suite_tree('\nif True:\n a = 1\n b = 2\n')
101 self.assertEquals(root.find_suite(3), root.find_suite(4))
102 self.assertEquals(3, suites.find_visible_for_suite(root, [3, 4]))
103
104 def test_simple_find_visible_for_else(self):
105 root = source_suite_tree('\nif True:\n pass\nelse: pass\n')
106 self.assertEquals(2, suites.find_visible_for_suite(root, [2, 4]))
107
108 def test_simple_find_visible_for_different_suites(self):
109 root = source_suite_tree('if True:\n pass\na = 1\n'
110 'if False:\n pass\n')
111 self.assertEquals(1, suites.find_visible_for_suite(root, [2, 3]))
112 self.assertEquals(5, suites.find_visible_for_suite(root, [5]))
113 self.assertEquals(1, suites.find_visible_for_suite(root, [2, 5]))
114
115 def test_not_always_selecting_scope_start(self):
116 root = source_suite_tree(
117 'if True:\n a = 1\n if True:\n pass\n'
118 ' else:\n pass\n')
119 self.assertEquals(3, suites.find_visible_for_suite(root, [4, 6]))
120 self.assertEquals(3, suites.find_visible_for_suite(root, [3, 5]))
121 self.assertEquals(3, suites.find_visible_for_suite(root, [4, 5]))
122
123 def test_ignoring_functions(self):
124 root = source_suite_tree(
125 'def f():\n pass\na = 1\n')
126 self.assertEquals(3, suites.find_visible_for_suite(root, [2, 3]))
127
128 def test_ignoring_classes(self):
129 root = source_suite_tree(
130 'a = 1\nclass C():\n pass\n')
131 self.assertEquals(1, suites.find_visible_for_suite(root, [1, 3]))
132
133
134 def source_suite_tree(source):
135 return suites.ast_suite_tree(ast.parse(source))
136
137
138 if __name__ == '__main__':
139 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698