1
0
forked from VimPlug/jedi

Merge remote-tracking branch 'origin/master' into typeshed

This commit is contained in:
Dave Halter
2019-04-13 01:52:15 +02:00
5 changed files with 56 additions and 2 deletions

View File

@@ -95,6 +95,43 @@ class TestDefinedNames(TestCase):
self.assert_definition_names(C_subdefs, ['h'])
self.assert_definition_names(foo_subdefs, ['x', 'bar'])
def test_async_stmt_with_all_scopes_false(self):
definitions = self.check_defined_names("""
from module import f
import asyncio
g = f(f)
class C:
h = g
def __init__(self):
pass
async def __aenter__(self):
pass
def foo(x=a):
bar = x
return bar
async def async_foo(duration):
async def wait():
await asyncio.sleep(100)
for i in range(duration//100):
await wait()
return duration//100*100
async with C() as cinst:
d = cinst
""", ['f', 'asyncio', 'g', 'C', 'foo', 'async_foo', 'cinst', 'd'])
C_subdefs = definitions[3].defined_names()
foo_subdefs = definitions[4].defined_names()
async_foo_subdefs = definitions[5].defined_names()
cinst_subdefs = definitions[6].defined_names()
self.assert_definition_names(C_subdefs, ['h', '__init__', '__aenter__'])
self.assert_definition_names(foo_subdefs, ['x', 'bar'])
self.assert_definition_names(async_foo_subdefs, ['duration', 'wait', 'i'])
# We treat d as a name outside `async with` block
self.assert_definition_names(cinst_subdefs, [])
def test_follow_imports(environment):
# github issue #344

View File

@@ -21,3 +21,14 @@ def test_add_dynamic_mods(Script):
result = script.goto_definitions()
assert len(result) == 1
assert result[0].description == 'class int'
def test_add_bracket_after_function(monkeypatch, Script):
settings = api.settings
monkeypatch.setattr(settings, 'add_bracket_after_function', True)
script = Script('''\
def foo():
pass
foo''')
completions = script.completions()
assert completions[0].complete == '('