ismethoddescriptor(obj) or
isinstance(obj, _NonUserDefinedCallables) or
# Can't test 'isinstance(type)' here, as it would
- # also be True for regular python classes
- obj in (type, object))
+ # also be True for regular python classes.
+ # Can't use the `in` operator here, as it would
+ # invoke the custom __eq__ method.
+ obj is type or obj is object)
def _signature_is_functionlike(obj):
self.assertEqual(inspect.signature(D2), inspect.signature(D1))
+ def test_signature_on_non_comparable(self):
+ class NoncomparableCallable:
+ def __call__(self, a):
+ pass
+ def __eq__(self, other):
+ 1/0
+ self.assertEqual(self.signature(NoncomparableCallable()),
+ ((('a', ..., ..., 'positional_or_keyword'),),
+ ...))
+
class TestParameterObject(unittest.TestCase):
def test_signature_parameter_kinds(self):