Skip to content

Commit

Permalink
dev-python/funcsigs: fix test issue with pypy3
Browse files Browse the repository at this point in the history
This commit disables 2 tests because they fail to run with pypy3.
This has been reported upstream.

Upstream bug: testing-cabal/funcsigs#10

Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=564852

Package-Manager: portage-2.3.0
  • Loading branch information
MathyV committed Oct 16, 2016
1 parent b2f7298 commit 5decfb9
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 0 deletions.
94 changes: 94 additions & 0 deletions dev-python/funcsigs/files/funcsigs-1.0.2-fix-pypy3-tests.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
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)),
7 changes: 7 additions & 0 deletions dev-python/funcsigs/funcsigs-1.0.2-r1.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ DEPEND="
test? ( dev-python/unittest2[${PYTHON_USEDEP}] )"
RDEPEND=""

PATCHES=(
# This patch disables some tests for pypy as they do not work as expected.
# This has been reported upstream
# https://github.com/testing-cabal/funcsigs/issues/10
"${FILESDIR}/${P}-fix-pypy3-tests.patch"
)

python_test() {
esetup.py test
}

0 comments on commit 5decfb9

Please sign in to comment.