forked from VimPlug/jedi
Add TestDefinedNames.test_nested_class
This commit is contained in:
@@ -10,9 +10,12 @@ from .base import TestBase
|
|||||||
|
|
||||||
class TestDefinedNames(TestBase):
|
class TestDefinedNames(TestBase):
|
||||||
|
|
||||||
|
def assert_definition_names(self, definitions, names):
|
||||||
|
self.assertEqual([d.name for d in definitions], names)
|
||||||
|
|
||||||
def check_defined_names(self, source, names):
|
def check_defined_names(self, source, names):
|
||||||
definitions = api.defined_names(textwrap.dedent(source))
|
definitions = api.defined_names(textwrap.dedent(source))
|
||||||
self.assertEqual([d.name for d in definitions], names)
|
self.assert_definition_names(definitions, names)
|
||||||
return definitions
|
return definitions
|
||||||
|
|
||||||
def test_get_definitions_flat(self):
|
def test_get_definitions_flat(self):
|
||||||
@@ -51,7 +54,22 @@ class TestDefinedNames(TestBase):
|
|||||||
pass
|
pass
|
||||||
""", ['Class'])
|
""", ['Class'])
|
||||||
subdefinitions = definitions[0].defined_names()
|
subdefinitions = definitions[0].defined_names()
|
||||||
self.assertEqual([d.name for d in subdefinitions],
|
self.assert_definition_names(subdefinitions, ['f', 'g'])
|
||||||
['f', 'g'])
|
|
||||||
self.assertEqual([d.full_name for d in subdefinitions],
|
self.assertEqual([d.full_name for d in subdefinitions],
|
||||||
['Class.f', 'Class.g'])
|
['Class.f', 'Class.g'])
|
||||||
|
|
||||||
|
def test_nested_class(self):
|
||||||
|
definitions = self.check_defined_names("""
|
||||||
|
class L1:
|
||||||
|
class L2:
|
||||||
|
class L3:
|
||||||
|
def f(): pass
|
||||||
|
def f(): pass
|
||||||
|
def f(): pass
|
||||||
|
def f(): pass
|
||||||
|
""", ['L1', 'f'])
|
||||||
|
subdefs = definitions[0].defined_names()
|
||||||
|
subsubdefs = subdefs[0].defined_names()
|
||||||
|
self.assert_definition_names(subdefs, ['L2', 'f'])
|
||||||
|
self.assert_definition_names(subsubdefs, ['L3', 'f'])
|
||||||
|
self.assert_definition_names(subsubdefs[0].defined_names(), ['f'])
|
||||||
|
|||||||
Reference in New Issue
Block a user