8ac5e011d6
GitOrigin-RevId: 2c3273caa153ee8eb5786bc8141b85b859e7efd7
94 lines
3.1 KiB
Diff
94 lines
3.1 KiB
Diff
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)),
|