diff --git a/tests/test_inspect.py b/tests/test_inspect.py index 98d6592..3a2a1f2 100644 --- a/tests/test_inspect.py +++ b/tests/test_inspect.py @@ -8,6 +8,7 @@ import unittest2 as unittest import funcsigs as inspect +import platform class TestSignatureObject(unittest.TestCase): @staticmethod @@ -409,7 +410,7 @@ def test_signature_on_decorated(self): Ellipsis)) """) - if sys.version_info[0] > 2: + if sys.version_info[0] > 2 and platform.python_implementation() != "PyPy": exec(""" def test_signature_on_class(self): class C: @@ -493,41 +494,44 @@ def test_signature_on_class(self): Ellipsis)) """) - def test_signature_on_callable_objects(self): - class Foo(object): - def __call__(self, a): - pass + if platform.python_implementation() != "PyPy": + exec(""" +def test_signature_on_callable_objects(self): + class Foo(object): + def __call__(self, a): + pass - self.assertEqual(self.signature(Foo()), - ((('a', Ellipsis, Ellipsis, "positional_or_keyword"),), - Ellipsis)) + self.assertEqual(self.signature(Foo()), + ((('a', Ellipsis, Ellipsis, "positional_or_keyword"),), + Ellipsis)) - class Spam(object): - pass - with self.assertRaisesRegex(TypeError, "is not a callable object"): - inspect.signature(Spam()) + class Spam(object): + pass + with self.assertRaisesRegex(TypeError, "is not a callable object"): + inspect.signature(Spam()) - class Bar(Spam, Foo): - pass + class Bar(Spam, Foo): + pass - self.assertEqual(self.signature(Bar()), - ((('a', Ellipsis, Ellipsis, "positional_or_keyword"),), - Ellipsis)) + self.assertEqual(self.signature(Bar()), + ((('a', Ellipsis, Ellipsis, "positional_or_keyword"),), + Ellipsis)) - class ToFail(object): - __call__ = type - with self.assertRaisesRegex(ValueError, "not supported by signature"): - inspect.signature(ToFail()) + class ToFail(object): + __call__ = type + with self.assertRaisesRegex(ValueError, "not supported by signature"): + inspect.signature(ToFail()) - if sys.version_info[0] < 3: - return + if sys.version_info[0] < 3: + return - class Wrapped(object): - pass - Wrapped.__wrapped__ = lambda a: None - self.assertEqual(self.signature(Wrapped), - ((('a', Ellipsis, Ellipsis, "positional_or_keyword"),), - Ellipsis)) + class Wrapped(object): + pass + Wrapped.__wrapped__ = lambda a: None + self.assertEqual(self.signature(Wrapped), + ((('a', Ellipsis, Ellipsis, "positional_or_keyword"),), + Ellipsis)) +""") def test_signature_on_lambdas(self): self.assertEqual(self.signature((lambda a=10: a)),