mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-19 20:11:12 +08:00
Modules that are not importable shouldn't cause Jedi to stop working (just issue a warning). Fixes #468, #71.
This commit is contained in:
@@ -375,6 +375,11 @@ def load_module(path, name):
|
|||||||
# the QObject class.
|
# the QObject class.
|
||||||
# See https://github.com/davidhalter/jedi/pull/483
|
# See https://github.com/davidhalter/jedi/pull/483
|
||||||
return None
|
return None
|
||||||
|
raise
|
||||||
|
except ImportError:
|
||||||
|
# If a module is "corrupt" or not really a Python module or whatever.
|
||||||
|
debug.warning('Module %s not importable.', path)
|
||||||
|
return None
|
||||||
# Just access the cache after import, because of #59 as well as the very
|
# Just access the cache after import, because of #59 as well as the very
|
||||||
# complicated import structure of Python.
|
# complicated import structure of Python.
|
||||||
module = sys.modules[dotted_path]
|
module = sys.modules[dotted_path]
|
||||||
|
|||||||
@@ -51,3 +51,9 @@ def test_flask_ext(script, name):
|
|||||||
assert name in [c.name for c in jedi.Script(script).completions()]
|
assert name in [c.name for c in jedi.Script(script).completions()]
|
||||||
finally:
|
finally:
|
||||||
sys.path.remove(path)
|
sys.path.remove(path)
|
||||||
|
|
||||||
|
|
||||||
|
@cwd_at('test/test_evaluate/')
|
||||||
|
def test_not_importable_file():
|
||||||
|
src = 'import not_importable_file as x; x.'
|
||||||
|
assert not jedi.Script(src, path='example.py').completions()
|
||||||
|
|||||||
Reference in New Issue
Block a user