95 lines
3.1 KiB
Diff
95 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)),
|