From ab486ba84f7b29a5ce3175cf6d2bcbaf231fa72e Mon Sep 17 00:00:00 2001 From: Albertas Agejevas Date: Sun, 27 Jul 2014 17:00:17 +0200 Subject: [PATCH] List old-style flask extensions, too. --- jedi/evaluate/imports.py | 7 ++++++- test/test_evaluate/test_imports.py | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate/imports.py b/jedi/evaluate/imports.py index b6dc43e7..94ddfd4f 100644 --- a/jedi/evaluate/imports.py +++ b/jedi/evaluate/imports.py @@ -110,12 +110,17 @@ class ImportWrapper(pr.Base): names += m.get_defined_names() else: if self.import_path == ('flask', 'ext'): - # List Flask extensions in ``flask_foo`` + # List Flask extensions like ``flask_foo`` for mod in self._get_module_names(): modname = str(mod) if modname.startswith('flask_'): extname = modname[len('flask_'):] names.append(self._generate_name(extname)) + # Now the old style: ``flaskext.foo`` + for dir in self._importer.sys_path_with_modifications(): + flaskext = os.path.join(dir, 'flaskext') + if os.path.isdir(flaskext): + names += self._get_module_names([flaskext]) if on_import_stmt and isinstance(scope, pr.Module) \ and scope.path.endswith('__init__.py'): pkg_path = os.path.dirname(scope.path) diff --git a/test/test_evaluate/test_imports.py b/test/test_evaluate/test_imports.py index c21e8593..e695df79 100644 --- a/test/test_evaluate/test_imports.py +++ b/test/test_evaluate/test_imports.py @@ -44,7 +44,9 @@ def teardown_function(function): ("from flask.ext import baz; baz.", "Baz"), # flask_baz/__init__.py ("from flask.ext import moo; moo.", "Moo"), # flaskext/moo/__init__.py ("from flask.ext.", "foo"), + ("from flask.ext.", "bar"), ("from flask.ext.", "baz"), + ("from flask.ext.", "moo"), pytest.mark.xfail(("import flask.ext.foo; flask.ext.foo.", "Foo")), pytest.mark.xfail(("import flask.ext.bar; flask.ext.bar.", "Foo")), pytest.mark.xfail(("import flask.ext.baz; flask.ext.baz.", "Foo")),