1
0
forked from VimPlug/jedi

Rename Script.names to Script.get_names, fixes #1476

This commit is contained in:
Dave Halter
2020-01-22 01:22:46 +01:00
parent 8cc836e816
commit bff6e95e28
9 changed files with 67 additions and 67 deletions

View File

@@ -5,18 +5,18 @@ Tests for `api.names`.
from textwrap import dedent
def _assert_definition_names(definitions, names_):
assert [d.name for d in definitions] == names_
def _assert_definition_names(definitions, names):
assert [d.name for d in definitions] == names
def _check_names(names, source, names_):
definitions = names(dedent(source))
_assert_definition_names(definitions, names_)
def _check_names(get_names, source, names):
definitions = get_names(dedent(source))
_assert_definition_names(definitions, names)
return definitions
def test_get_definitions_flat(names):
_check_names(names, """
def test_get_definitions_flat(get_names):
_check_names(get_names, """
import module
class Class:
pass
@@ -26,26 +26,26 @@ def test_get_definitions_flat(names):
""", ['module', 'Class', 'func', 'data'])
def test_dotted_assignment(names):
_check_names(names, """
def test_dotted_assignment(get_names):
_check_names(get_names, """
x = Class()
x.y.z = None
""", ['x', 'z']) # TODO is this behavior what we want?
def test_multiple_assignment(names):
_check_names(names, "x = y = None", ['x', 'y'])
def test_multiple_assignment(get_names):
_check_names(get_names, "x = y = None", ['x', 'y'])
def test_multiple_imports(names):
_check_names(names, """
def test_multiple_imports(get_names):
_check_names(get_names, """
from module import a, b
from another_module import *
""", ['a', 'b'])
def test_nested_definitions(names):
definitions = _check_names(names, """
def test_nested_definitions(get_names):
definitions = _check_names(get_names, """
class Class:
def f():
pass
@@ -57,8 +57,8 @@ def test_nested_definitions(names):
assert [d.full_name for d in subdefinitions] == ['__main__.Class.f', '__main__.Class.g']
def test_nested_class(names):
definitions = _check_names(names, """
def test_nested_class(get_names):
definitions = _check_names(get_names, """
class L1:
class L2:
class L3:
@@ -74,8 +74,8 @@ def test_nested_class(names):
_assert_definition_names(subsubdefs[0].defined_names(), ['f'])
def test_class_fields_with_all_scopes_false(names):
definitions = _check_names(names, """
def test_class_fields_with_all_scopes_false(get_names):
definitions = _check_names(get_names, """
from module import f
g = f(f)
class C:
@@ -91,8 +91,8 @@ def test_class_fields_with_all_scopes_false(names):
_assert_definition_names(foo_subdefs, ['x', 'bar'])
def test_async_stmt_with_all_scopes_false(names):
definitions = _check_names(names, """
def test_async_stmt_with_all_scopes_false(get_names):
definitions = _check_names(get_names, """
from module import f
import asyncio
@@ -130,30 +130,30 @@ def test_async_stmt_with_all_scopes_false(names):
_assert_definition_names(cinst_subdefs, [])
def test_follow_imports(names):
def test_follow_imports(get_names):
# github issue #344
imp = names('import datetime')[0]
imp = get_names('import datetime')[0]
assert imp.name == 'datetime'
datetime_names = [str(d.name) for d in imp.defined_names()]
assert 'timedelta' in datetime_names
def test_names_twice(names):
def test_names_twice(get_names):
code = dedent('''
def lol():
pass
''')
defs = names(code)
defs = get_names(code)
assert defs[0].defined_names() == []
def test_simple_name(names):
defs = names('foo', references=True)
def test_simple_name(get_names):
defs = get_names('foo', references=True)
assert not defs[0]._name.infer()
def test_no_error(names):
def test_no_error(get_names):
code = dedent("""
def foo(a, b):
if a == 10:
@@ -161,7 +161,7 @@ def test_no_error(names):
print("foo")
a = 20
""")
func_name, = names(code)
func_name, = get_names(code)
a, b, a20 = func_name.defined_names()
assert a.name == 'a'
assert b.name == 'b'