commit:     cdf4918d154aa61d1323245c173cc7c08a5d1327
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 18 13:17:51 2018 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Wed Apr 18 13:22:02 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cdf4918d

dev-python/py: Fix tests

Closes: https://bugs.gentoo.org/642440
Package-Manager: Portage-2.3.30, Repoman-2.3.9

 .../py/files/py-1.4.34-skip-broken-pytest3.patch   | 116 +++++++++++++++++++++
 dev-python/py/py-1.4.34.ebuild                     |   2 +
 2 files changed, 118 insertions(+)

diff --git a/dev-python/py/files/py-1.4.34-skip-broken-pytest3.patch 
b/dev-python/py/files/py-1.4.34-skip-broken-pytest3.patch
new file mode 100644
index 00000000000..67b1f4eb95a
--- /dev/null
+++ b/dev-python/py/files/py-1.4.34-skip-broken-pytest3.patch
@@ -0,0 +1,116 @@
+Backport of 
https://github.com/pytest-dev/py/commit/3305183b964bded36f9cd43976d22524f6ae15b2
+
+--- a/testing/code/test_assertion.py
++++ b/testing/code/test_assertion.py
+@@ -141,7 +141,10 @@ def test_assert_implicit_multiline():
+         e = exvalue()
+         assert str(e).find('assert [1, 2, 3] !=') != -1
+ 
+-
++@py.test.mark.xfail(py.test.__version__[0] != "2",
++                    reason="broken on modern pytest",
++                    run=False
++)
+ def test_assert_with_brokenrepr_arg():
+     class BrokenRepr:
+         def __repr__(self): 0 / 0
+@@ -278,7 +281,10 @@ def test_assert_raise_alias(testdir):
+     ])
+ 
+ 
+-@pytest.mark.skipif("sys.version_info < (2,5)")
++@py.test.mark.xfail(py.test.__version__[0] != "2",
++                    reason="broken on modern pytest",
++                    run=False)
++@py.test.mark.skipif("sys.version_info < (2,5)")
+ def test_assert_raise_subclass():
+     class SomeEx(AssertionError):
+         def __init__(self, *args):
+--- a/testing/code/test_excinfo.py
++++ b/testing/code/test_excinfo.py
+@@ -16,6 +16,13 @@ else:
+ 
+ import pytest
+ pytest_version_info = tuple(map(int, pytest.__version__.split(".")[:3]))
++
++broken_on_modern_pytest = pytest.mark.xfail(
++    pytest_version_info[0] != 2,
++    reason="this test hasn't been fixed after moving py.code into pytest",
++    run=False
++    )
++
+ 
+ class TWMock:
+     def __init__(self):
+@@ -355,6 +362,7 @@ class TestFormattedExcinfo:
+         assert lines[0] == "|   def f(x):"
+         assert lines[1] == "        pass"
+ 
++    @broken_on_modern_pytest
+     def test_repr_source_excinfo(self):
+         """ check if indentation is right """
+         pr = FormattedExcinfo()
+@@ -657,6 +665,7 @@ raise ValueError()
+         assert p._makepath(__file__) == __file__
+         reprtb = p.repr_traceback(excinfo)
+ 
++    @broken_on_modern_pytest
+     def test_repr_excinfo_addouterr(self, importasmod):
+         mod = importasmod("""
+             def entry():
+@@ -699,6 +708,7 @@ raise ValueError()
+             assert reprtb.extraline == "!!! Recursion detected (same locals & 
position)"
+             assert str(reprtb)
+ 
++    @broken_on_modern_pytest
+     def test_tb_entry_AssertionError(self, importasmod):
+         # probably this test is a bit redundant
+         # as py/magic/testing/test_assertion.py
+@@ -742,6 +752,7 @@ raise ValueError()
+         x = py.builtin._totext(MyRepr())
+         assert x == py.builtin._totext("я", "utf-8")
+ 
++    @broken_on_modern_pytest
+     def test_toterminal_long(self, importasmod):
+         mod = importasmod("""
+             def g(x):
+@@ -768,6 +779,7 @@ raise ValueError()
+         assert tw.lines[9] == ""
+         assert tw.lines[10].endswith("mod.py:3: ValueError")
+ 
++    @broken_on_modern_pytest
+     def test_toterminal_long_missing_source(self, importasmod, tmpdir):
+         mod = importasmod("""
+             def g(x):
+@@ -793,6 +805,7 @@ raise ValueError()
+         assert tw.lines[7] == ""
+         assert tw.lines[8].endswith("mod.py:3: ValueError")
+ 
++    @broken_on_modern_pytest
+     def test_toterminal_long_incomplete_source(self, importasmod, tmpdir):
+         mod = importasmod("""
+             def g(x):
+@@ -818,6 +831,7 @@ raise ValueError()
+         assert tw.lines[7] == ""
+         assert tw.lines[8].endswith("mod.py:3: ValueError")
+ 
++    @broken_on_modern_pytest
+     def test_toterminal_long_filenames(self, importasmod):
+         mod = importasmod("""
+             def f():
+@@ -863,6 +877,7 @@ raise ValueError()
+         assert tw.stringio.getvalue()
+ 
+ 
++    @broken_on_modern_pytest
+     def test_native_style(self):
+         excinfo = self.excinfo_from_exec("""
+             assert 0
+@@ -877,6 +892,7 @@ raise ValueError()
+         if py.std.sys.version_info >= (2, 5):
+             assert s.count('assert 0') == 2
+ 
++    @broken_on_modern_pytest
+     def test_traceback_repr_style(self, importasmod):
+         mod = importasmod("""
+             def f():

diff --git a/dev-python/py/py-1.4.34.ebuild b/dev-python/py/py-1.4.34.ebuild
index 82fcf480f53..e6fadf662a3 100644
--- a/dev-python/py/py-1.4.34.ebuild
+++ b/dev-python/py/py-1.4.34.ebuild
@@ -22,6 +22,8 @@ DEPEND="
        test? ( >=dev-python/pytest-2.4.2[${PYTHON_USEDEP}] )
        doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )"
 
+PATCHES=( "${FILESDIR}"/${PN}-1.4.34-skip-broken-pytest3.patch )
+
 python_prepare_all() {
        sed -e 's:intersphinx_mapping:#&:' -i doc/conf.py || die
        distutils-r1_python_prepare_all

Reply via email to