Anonymous avatar Anonymous committed 15f3eac

autoimport: added AutoImport.clear_cache()

Comments (0)

Files changed (2)

rope/contrib/autoimport.py

             self.update_module(modname, underlined)
             job_set.finished_job()
 
+    def clear_cache(self):
+        """Clear all entries in global-name cache
+
+        It might be a good idea to use this function before
+        regenerating global names.
+
+        """
+        self.names.clear()
+
     def find_insertion_line(self, code):
         """Guess at what line the new import should be inserted"""
         match = re.search(r'^(def|class)\s+', code)

ropetest/contrib/autoimporttest.py

             'import mod1\n\n# comment\n')
         self.assertEquals(2, result)
 
+    def test_empty_cache(self):
+        self.mod1.write('myvar = None\n')
+        self.importer.update_resource(self.mod1)
+        self.assertEquals(['mod1'], self.importer.get_modules('myvar'))
+        self.importer.clear_cache()
+        self.assertEquals([], self.importer.get_modules('myvar'))
+
     def test_not_caching_underlined_names(self):
         self.mod1.write('_myvar = None\n')
         self.importer.update_resource(self.mod1, underlined=False)
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.