Issue 23898: Fix inspect.classify_class_attrs() to work with __eq__

This commit is contained in:
Yury Selivanov 2015-05-21 15:41:57 -04:00
parent 0978b5cdb3
commit bf341fb5f6
3 changed files with 21 additions and 3 deletions

View file

@ -782,6 +782,21 @@ class TestClassesAndFunctions(unittest.TestCase):
should_find_ga = inspect.Attribute('ham', 'data', Meta, 'spam')
self.assertIn(should_find_ga, inspect.classify_class_attrs(VA))
def test_classify_overrides_bool(self):
class NoBool(object):
def __eq__(self, other):
return NoBool()
def __bool__(self):
raise NotImplementedError(
"This object does not specify a boolean value")
class HasNB(object):
dd = NoBool()
should_find_attr = inspect.Attribute('dd', 'data', HasNB, HasNB.dd)
self.assertIn(should_find_attr, inspect.classify_class_attrs(HasNB))
def test_classify_metaclass_class_attribute(self):
class Meta(type):
fish = 'slap'