Anonymous avatar Anonymous committed 7340806

fixedmodnames: added rope.contrib.fixmodnames

Comments (0)

Files changed (2)

rope/contrib/fixmodnames.py

+from rope.base import change
+from rope.contrib import changestack
+from rope.refactor import rename
+
+
+class FixModuleNames(object):
+
+    def __init__(self, project):
+        self.project = project
+
+    def get_changes(self):
+        stack = changestack.ChangeStack(self.project, 'Fixing module names')
+        try:
+            for resource in self.project.pycore.get_python_files():
+                modname = resource.name.rsplit('.', 1)[0]
+                if not modname.islower():
+                    renamer = rename.Rename(self.project, resource)
+                    changes = renamer.get_changes(modname.lower())
+                    stack.push(changes)
+        finally:
+            stack.pop_all()
+        return stack.merged()

ropetest/contrib/fixmodnamestest.py

+import unittest
+
+from ropetest import testutils
+from rope.contrib.fixmodnames import FixModuleNames
+
+
+class FixModuleNamesTest(unittest.TestCase):
+
+    def setUp(self):
+        super(FixModuleNamesTest, self).setUp()
+        self.project = testutils.sample_project()
+
+    def tearDown(self):
+        testutils.remove_project(self.project)
+        super(FixModuleNamesTest, self).tearDown()
+
+    def test_simple_module_renaming(self):
+        mod = self.project.root.create_file('Mod.py')
+        self.project.do(FixModuleNames(self.project).get_changes())
+        self.assertFalse(mod.exists())
+        self.assertTrue(self.project.get_resource('mod.py').exists)
+
+
+if __name__ == '__main__':
+    unittest.main()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.