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():
