Mercurial > hg > dotemacs
annotate elpa/elpy-1.14.1/elpy/tests/test_refactor.py @ 156:c745e2cc79ee
elpy: update along with direct deps
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Mon, 27 Feb 2017 12:17:38 -0500 |
parents | elpa/elpy-1.12.0/elpy/tests/test_refactor.py@55ceabc58fcc |
children |
rev | line source |
---|---|
152
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
1 import unittest |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
2 import tempfile |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
3 import shutil |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
4 import os |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
5 import mock |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
6 import sys |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
7 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
8 from elpy import refactor |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
9 from textwrap import dedent |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
10 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
11 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
12 class RefactorTestCase(unittest.TestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
13 def setUp(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
14 self.project_root = tempfile.mkdtemp(prefix="test-refactor-root") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
15 self.addCleanup(shutil.rmtree, self.project_root, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
16 ignore_errors=True) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
17 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
18 def create_file(self, name, contents=""): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
19 filename = os.path.join(self.project_root, name) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
20 contents = dedent(contents) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
21 offset = contents.find("_|_") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
22 if offset > -1: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
23 contents = contents[:offset] + contents[offset + 3:] |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
24 with open(filename, "w") as f: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
25 f.write(contents) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
26 return filename, offset |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
27 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
28 def assertSourceEqual(self, first, second, msg=None): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
29 """Fail if the two objects are unequal, ignoring indentation.""" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
30 self.assertEqual(dedent(first), dedent(second), msg=msg) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
31 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
32 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
33 class TestGetRefactorOptions(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
34 def test_should_only_return_importsmodule_if_not_on_symbol(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
35 filename, offset = self.create_file("foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
36 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
37 import foo |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
38 _|_""") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
39 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
40 options = ref.get_refactor_options(offset) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
41 self.assertTrue(all(opt['category'] in ('Imports', |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
42 'Module') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
43 for opt in options)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
44 filename, offset = self.create_file("foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
45 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
46 _|_ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
47 import foo""") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
48 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
49 options = ref.get_refactor_options(offset) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
50 self.assertTrue(all(opt['category'] in ('Imports', |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
51 'Module') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
52 for opt in options)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
53 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
54 def test_should_return_all_if_on_symbol(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
55 filename, offset = self.create_file("foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
56 "import _|_foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
57 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
58 options = ref.get_refactor_options(offset) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
59 self.assertTrue(all(opt['category'] in ('Imports', |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
60 'Method', |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
61 'Module', |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
62 'Symbol') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
63 for opt in options)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
64 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
65 def test_should_return_only_region_if_endoffset(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
66 filename, offset = self.create_file("foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
67 "import foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
68 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
69 options = ref.get_refactor_options(offset, 5) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
70 self.assertTrue(all(opt['category'] == 'Region' |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
71 for opt in options)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
72 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
73 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
74 def test_should_treat_from_import_special(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
75 filename, offset = self.create_file("foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
76 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
77 import foo |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
78 _|_""") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
79 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
80 options = ref.get_refactor_options(offset) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
81 self.assertFalse(any(opt['name'] == "refactor_froms_to_imports" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
82 for opt in options)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
83 filename, offset = self.create_file("foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
84 "imp_|_ort foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
85 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
86 options = ref.get_refactor_options(offset) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
87 self.assertTrue(any(opt['name'] == "refactor_froms_to_imports" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
88 for opt in options)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
89 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
90 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
91 class TestGetChanges(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
92 def test_should_fail_if_method_is_not_refactoring(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
93 filename, offset = self.create_file("foo.py") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
94 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
95 self.assertRaises(ValueError, ref.get_changes, "bad_name") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
96 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
97 def test_should_return_method_results(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
98 filename, offset = self.create_file("foo.py") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
99 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
100 with mock.patch.object(ref, 'refactor_extract_method') as test: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
101 test.return_value = "Meep!" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
102 self.assertEqual(ref.get_changes("refactor_extract_method", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
103 1, 2), |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
104 "Meep!") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
105 test.assert_called_with(1, 2) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
106 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
107 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
108 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
109 class TestIsOnSymbol(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
110 def test_should_find_symbol(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
111 filename, offset = self.create_file("test.py", "__B_|_AR = 100") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
112 r = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
113 self.assertTrue(r._is_on_symbol(offset)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
114 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
115 # Issue #111 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
116 def test_should_find_symbol_with_underscores(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
117 filename, offset = self.create_file("test.py", "_|___BAR = 100") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
118 r = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
119 self.assertTrue(r._is_on_symbol(offset)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
120 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
121 def test_should_not_find_weird_places(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
122 filename, offset = self.create_file("test.py", "hello = _|_ 1 + 1") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
123 r = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
124 self.assertFalse(r._is_on_symbol(offset)) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
125 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
126 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
127 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
128 class TestFromsToImports(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
129 def test_should_refactor(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
130 filename, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
131 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
132 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
133 _|_from datetime import datetime |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
134 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
135 d = datetime(2013, 4, 7) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
136 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
137 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
138 (change,) = ref.get_changes("refactor_froms_to_imports", offset) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
139 self.assertEqual(change['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
140 self.assertEqual(change['file'], filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
141 self.assertSourceEqual(change['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
142 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
143 import datetime |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
144 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
145 d = datetime.datetime(2013, 4, 7) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
146 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
147 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
148 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
149 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
150 class TestOrganizeImports(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
151 def test_should_refactor(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
152 filename, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
153 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
154 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
155 import unittest, base64 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
156 import datetime, json |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
157 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
158 obj = json.dumps(23) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
159 unittest.TestCase() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
160 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
161 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
162 (change,) = ref.get_changes("refactor_organize_imports") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
163 self.assertEqual(change['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
164 self.assertEqual(change['file'], filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
165 self.assertSourceEqual(change['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
166 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
167 import json |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
168 import unittest |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
169 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
170 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
171 obj = json.dumps(23) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
172 unittest.TestCase() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
173 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
174 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
175 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
176 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
177 class TestModuleToPackage(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
178 def test_should_refactor(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
179 filename, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
180 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
181 "_|_import os\n") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
182 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
183 changes = ref.refactor_module_to_package() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
184 a, b, c = changes |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
185 # Not sure why the a change is there. It's a CHANGE that |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
186 # changes nothing... |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
187 self.assertEqual(a['diff'], '') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
188 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
189 self.assertEqual(b['action'], 'create') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
190 self.assertEqual(b['type'], 'directory') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
191 self.assertEqual(b['path'], os.path.join(self.project_root, "foo")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
192 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
193 self.assertEqual(c['action'], 'move') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
194 self.assertEqual(c['type'], 'file') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
195 self.assertEqual(c['source'], os.path.join(self.project_root, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
196 "foo.py")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
197 self.assertEqual(c['destination'], os.path.join(self.project_root, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
198 "foo/__init__.py")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
199 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
200 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
201 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
202 class TestRenameAtPoint(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
203 def test_should_refactor(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
204 filename, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
205 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
206 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
207 class Foo(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
208 def _|_foo(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
209 return 5 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
210 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
211 def bar(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
212 return self.foo() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
213 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
214 file2, offset2 = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
215 "bar.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
216 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
217 import foo |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
218 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
219 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
220 x = foo.Foo() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
221 x.foo()""") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
222 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
223 first, second = ref.refactor_rename_at_point(offset, "frob", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
224 in_hierarchy=False, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
225 docs=False) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
226 if first['file'] == filename: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
227 a, b = first, second |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
228 else: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
229 a, b = second, first |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
230 self.assertEqual(a['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
231 self.assertEqual(a['file'], filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
232 self.assertSourceEqual(a['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
233 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
234 class Foo(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
235 def frob(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
236 return 5 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
237 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
238 def bar(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
239 return self.frob() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
240 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
241 self.assertEqual(b['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
242 self.assertEqual(b['file'], file2) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
243 self.assertSourceEqual(b['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
244 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
245 import foo |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
246 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
247 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
248 x = foo.Foo() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
249 x.frob()""") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
250 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
251 def test_should_refactor_in_hierarchy(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
252 filename, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
253 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
254 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
255 class Foo(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
256 def _|_foo(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
257 return 5 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
258 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
259 def bar(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
260 return self.foo() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
261 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
262 class Bar(Foo): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
263 def foo(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
264 return 42 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
265 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
266 class Baz(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
267 def foo(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
268 return 42 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
269 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
270 file2, offset2 = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
271 "bar.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
272 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
273 import foo |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
274 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
275 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
276 x, y, z = foo.Foo(), foo.Bar(), foo.Baz() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
277 x.foo() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
278 y.foo() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
279 z.foo()""") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
280 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
281 first, second = ref.refactor_rename_at_point(offset, "frob", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
282 in_hierarchy=True, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
283 docs=False) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
284 if first['file'] == filename: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
285 a, b = first, second |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
286 else: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
287 a, b = second, first |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
288 self.assertEqual(a['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
289 self.assertEqual(a['file'], filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
290 self.assertSourceEqual(a['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
291 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
292 class Foo(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
293 def frob(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
294 return 5 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
295 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
296 def bar(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
297 return self.frob() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
298 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
299 class Bar(Foo): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
300 def frob(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
301 return 42 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
302 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
303 class Baz(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
304 def foo(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
305 return 42 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
306 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
307 self.assertEqual(b['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
308 self.assertEqual(b['file'], file2) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
309 self.assertSourceEqual(b['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
310 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
311 import foo |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
312 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
313 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
314 x, y, z = foo.Foo(), foo.Bar(), foo.Baz() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
315 x.frob() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
316 y.frob() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
317 z.foo()""") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
318 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
319 def test_should_refactor_in_docstrings(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
320 filename, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
321 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
322 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
323 class Foo(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
324 "Frobnicate the foo" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
325 def _|_foo(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
326 return 5 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
327 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
328 print("I'm an unrelated foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
329 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
330 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
331 (change,) = ref.refactor_rename_at_point(offset, "frob", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
332 in_hierarchy=False, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
333 docs=True) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
334 self.assertEqual(change['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
335 self.assertEqual(change['file'], filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
336 self.assertSourceEqual(change['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
337 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
338 class Foo(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
339 "Frobnicate the frob" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
340 def frob(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
341 return 5 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
342 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
343 print("I'm an unrelated foo") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
344 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
345 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
346 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
347 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
348 class TestRenameCurrentModule(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
349 def test_should_refactor(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
350 filename, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
351 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
352 "_|_import os\n") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
353 file2, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
354 "bar.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
355 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
356 _|_import foo |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
357 foo.os |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
358 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
359 dest = os.path.join(self.project_root, "frob.py") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
360 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
361 a, b = ref.refactor_rename_current_module("frob") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
362 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
363 self.assertEqual(a['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
364 self.assertEqual(a['file'], file2) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
365 self.assertEqual(a['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
366 "import frob\n" |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
367 "frob.os\n") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
368 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
369 self.assertEqual(b['action'], 'move') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
370 self.assertEqual(b['type'], 'file') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
371 self.assertEqual(b['source'], filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
372 self.assertEqual(b['destination'], dest) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
373 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
374 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
375 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
376 class TestMoveModule(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
377 def test_should_refactor(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
378 filename, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
379 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
380 "_|_import os\n") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
381 file2, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
382 "bar.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
383 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
384 _|_import foo |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
385 foo.os |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
386 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
387 dest = os.path.join(self.project_root, "frob") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
388 os.mkdir(dest) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
389 with open(os.path.join(dest, "__init__.py"), "w") as f: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
390 f.write("") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
391 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
392 a, b = ref.refactor_move_module(dest) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
393 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
394 self.assertEqual(a['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
395 self.assertEqual(a['file'], file2) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
396 self.assertSourceEqual(a['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
397 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
398 import frob.foo |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
399 frob.foo.os |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
400 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
401 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
402 self.assertEqual(b['action'], 'move') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
403 self.assertEqual(b['type'], 'file') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
404 self.assertEqual(b['source'], filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
405 self.assertEqual(b['destination'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
406 os.path.join(dest, "foo.py")) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
407 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
408 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
409 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
410 class TestCreateInline(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
411 def setUp(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
412 super(TestCreateInline, self).setUp() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
413 self.filename, self.offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
414 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
415 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
416 def add(a, b): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
417 return a + b |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
418 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
419 x = _|_add(2, 3) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
420 y = add(17, 4) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
421 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
422 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
423 def test_should_refactor_single_occurrenc(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
424 ref = refactor.Refactor(self.project_root, self.filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
425 (change,) = ref.refactor_create_inline(self.offset, True) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
426 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
427 self.assertEqual(change['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
428 self.assertEqual(change['file'], self.filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
429 self.assertSourceEqual(change['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
430 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
431 def add(a, b): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
432 return a + b |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
433 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
434 x = 2 + 3 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
435 y = add(17, 4) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
436 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
437 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
438 def test_should_refactor_all_occurrencs(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
439 ref = refactor.Refactor(self.project_root, self.filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
440 (change,) = ref.refactor_create_inline(self.offset, False) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
441 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
442 self.assertEqual(change['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
443 self.assertEqual(change['file'], self.filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
444 self.assertSourceEqual(change['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
445 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
446 x = 2 + 3 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
447 y = 17 + 4 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
448 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
449 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
450 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
451 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
452 class TestExtractMethod(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
453 def setUp(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
454 super(TestExtractMethod, self).setUp() |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
455 self.filename, self.offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
456 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
457 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
458 class Foo(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
459 def spaghetti(self, a, b): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
460 _|_x = a + 5 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
461 y = b + 23 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
462 return y |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
463 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
464 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
465 @unittest.skipIf(sys.version_info >= (3, 5), "Python 3.5 not supported") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
466 def test_should_refactor_local(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
467 ref = refactor.Refactor(self.project_root, self.filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
468 (change,) = ref.refactor_extract_method(self.offset, 104, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
469 "calc", False) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
470 self.assertEqual(change['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
471 self.assertEqual(change['file'], self.filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
472 expected = """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
473 class Foo(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
474 def spaghetti(self, a, b): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
475 return self.calc(a, b) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
476 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
477 def calc(self, a, b): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
478 x = a + 5 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
479 y = b + 23 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
480 return y |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
481 """ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
482 expected2 = expected.replace("return self.calc(a, b)", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
483 "return self.calc(b, a)") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
484 expected2 = expected2.replace("def calc(self, a, b)", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
485 "def calc(self, b, a)") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
486 # This is silly, but it's what we got. |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
487 if change['contents'] == dedent(expected2): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
488 self.assertSourceEqual(change['contents'], expected2) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
489 else: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
490 self.assertSourceEqual(change['contents'], expected) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
491 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
492 @unittest.skipIf(sys.version_info >= (3, 5), "Python 3.5 not supported") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
493 def test_should_refactor_global(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
494 ref = refactor.Refactor(self.project_root, self.filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
495 (change,) = ref.refactor_extract_method(self.offset, 104, |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
496 "calc", True) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
497 self.assertEqual(change['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
498 self.assertEqual(change['file'], self.filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
499 expected = """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
500 class Foo(object): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
501 def spaghetti(self, a, b): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
502 return calc(a, b) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
503 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
504 def calc(a, b): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
505 x = a + 5 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
506 y = b + 23 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
507 return y |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
508 """ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
509 expected2 = expected.replace("return calc(a, b)", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
510 "return calc(b, a)") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
511 expected2 = expected2.replace("def calc(a, b)", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
512 "def calc(b, a)") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
513 if change['contents'] == dedent(expected2): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
514 self.assertSourceEqual(change['contents'], expected2) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
515 else: |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
516 self.assertSourceEqual(change['contents'], expected) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
517 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
518 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
519 @unittest.skipIf(not refactor.ROPE_AVAILABLE, "Requires Rope") |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
520 class TestUseFunction(RefactorTestCase): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
521 def test_should_refactor(self): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
522 filename, offset = self.create_file( |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
523 "foo.py", |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
524 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
525 def _|_add_and_multiply(a, b, c): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
526 temp = a + b |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
527 return temp * c |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
528 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
529 f = 1 + 2 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
530 g = f * 3 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
531 """) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
532 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
533 ref = refactor.Refactor(self.project_root, filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
534 (change,) = ref.refactor_use_function(offset) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
535 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
536 self.assertEqual(change['action'], 'change') |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
537 self.assertEqual(change['file'], filename) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
538 self.assertSourceEqual(change['contents'], |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
539 """\ |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
540 def add_and_multiply(a, b, c): |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
541 temp = a + b |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
542 return temp * c |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
543 |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
544 g = add_and_multiply(1, 2, 3) |
55ceabc58fcc
elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff
changeset
|
545 """) |