From 0ee2c1655178df1d030b7afc917a345c42591523 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Tue, 21 May 2013 20:16:44 +0200 Subject: [PATCH] Add TestDefinedNames.test_nested_class --- test/test_defined_names.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/test/test_defined_names.py b/test/test_defined_names.py index aeb13972..922fbe45 100644 --- a/test/test_defined_names.py +++ b/test/test_defined_names.py @@ -10,9 +10,12 @@ from .base import 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): definitions = api.defined_names(textwrap.dedent(source)) - self.assertEqual([d.name for d in definitions], names) + self.assert_definition_names(definitions, names) return definitions def test_get_definitions_flat(self): @@ -51,7 +54,22 @@ class TestDefinedNames(TestBase): pass """, ['Class']) subdefinitions = definitions[0].defined_names() - self.assertEqual([d.name for d in subdefinitions], - ['f', 'g']) + self.assert_definition_names(subdefinitions, ['f', 'g']) self.assertEqual([d.full_name for d in subdefinitions], ['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'])