Commit 60972b95 by Ned Batchelder

Make sure the code doesn't fail for old-style classes

parent ab25d900
......@@ -56,7 +56,12 @@ class RequiredBaseClassChecker(BaseChecker):
if not self.class_map:
return
all_bases = [usable_class_name(c) for c in node.mro()]
try:
all_bases = [usable_class_name(c) for c in node.mro()]
except NotImplementedError:
# Old-style 2.x classes have no mro.
all_bases = []
for base in all_bases:
required = self.class_map.get(base)
if required is not None:
......
......@@ -67,3 +67,14 @@ class RequiredBaseClassTestCase(CheckerTestCase):
''')
with self.assertNoMessages():
self.checker.visit_class(node)
@set_config(required_base_class=["unittest.case.TestCase:.MyTestMixin"])
def test_old_style_classes(self):
# We don't support base class checking on old-style classes, but we
# have to be sure not to fall over at least.
node = self.get_class_node('''
class MyClass:
pass
''')
with self.assertNoMessages():
self.checker.visit_class(node)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment