1
0
forked from VimPlug/jedi

Stubs should not become stubs again in the conversion function, fixes #1475

This commit is contained in:
Dave Halter
2020-02-03 00:58:54 +01:00
parent e802f5aabd
commit eee919174d
3 changed files with 18 additions and 3 deletions

View File

@@ -73,7 +73,13 @@ def _try_stub_to_python_names(names, prefer_stub_to_compiled=False):
converted_names = converted.goto(name.get_public_name())
if converted_names:
for n in converted_names:
yield n
if n.get_root_context().is_stub():
# If it's a stub again, it means we're going in
# a circle. Probably some imports make it a
# stub again.
yield name
else:
yield n
continue
yield name

View File

@@ -431,8 +431,9 @@ def test_completion_cache(Script, module_injector):
assert cls.docstring() == 'foo()\n\ndoc2'
def test_typing_module_completions(Script):
for c in Script('import typing; typing.').completions():
@pytest.mark.parametrize('module', ['typing', 'os'])
def test_module_completions(Script, module):
for c in Script('import {module}; {module}.'.format(module=module)).completions():
# Just make sure that there are no errors
c.type
c.docstring()

View File

@@ -62,3 +62,11 @@ def test_goto_import(Script, skip_pre_python35):
assert d.is_stub()
d, = Script(code).goto()
assert not d.is_stub()
def test_os_stat_result(Script):
d, = Script('import os; os.stat_result').goto()
assert d.is_stub()
n = d._name
# This should not be a different stub name
assert convert_names([n]) == [n]