diff options
author | Jacob Walls <jacobtylerwalls@gmail.com> | 2023-03-26 08:17:38 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-26 08:17:38 -0400 |
commit | b5ebf994a1c6039fa8ca4706889e007700cdf41a (patch) | |
tree | 6de918a20f023a2b0168635c4664ab272bdc4497 /tests/brain | |
parent | 598e4c3fc51173562fcbdda9c8413dd4e5f92b06 (diff) | |
download | astroid-git-b5ebf994a1c6039fa8ca4706889e007700cdf41a.tar.gz |
Restore setting a Call as a base for classes using `six.with_metaclass` (#2049)
Harden support for using enums as metaclasses.
Fixes the crash in PyCQA/pylint#5935 by adopting the check
for not-none bases as in ClassDef._inferred_bases without recausing
the false positive reported in PyCQA/pylint#7506, which requires
correct bases.
Diffstat (limited to 'tests/brain')
-rw-r--r-- | tests/brain/test_six.py | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/tests/brain/test_six.py b/tests/brain/test_six.py index 1ff184d3..c9dac562 100644 --- a/tests/brain/test_six.py +++ b/tests/brain/test_six.py @@ -110,8 +110,7 @@ class SixBrainTest(unittest.TestCase): inferred = next(ast_node.infer()) self.assertIsInstance(inferred, nodes.ClassDef) self.assertEqual(inferred.name, "B") - self.assertIsInstance(inferred.bases[0], nodes.Name) - self.assertEqual(inferred.bases[0].name, "C") + self.assertIsInstance(inferred.bases[0], nodes.Call) ancestors = tuple(inferred.ancestors()) self.assertIsInstance(ancestors[0], nodes.ClassDef) self.assertEqual(ancestors[0].name, "C") @@ -131,7 +130,7 @@ class SixBrainTest(unittest.TestCase): bar = 1 """ klass = astroid.extract_node(code) - assert list(klass.ancestors())[-1].name == "Enum" + assert next(klass.ancestors()).name == "Enum" def test_six_with_metaclass_with_additional_transform(self) -> None: def transform_class(cls: Any) -> ClassDef: |