From 8e3a0be6fbb9186fa45cc42ec833d0895d2313ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Tue, 1 Feb 2022 12:24:18 +0100
Subject: [PATCH 1/2] Fix test_syntax not to use identity comparison on string

Fix test_syntax to compare strings via "==" rather than "is", in order
to fix test failure on PyPy3.
---
 CHANGELOG.md         | 4 ++++
 CONTRIBUTORS.md      | 1 +
 tests/test_syntax.py | 2 +-
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/tests/test_syntax.py b/tests/test_syntax.py
index 46d0126..e5d904f 100644
--- a/tests/test_syntax.py
+++ b/tests/test_syntax.py
@@ -277,7 +277,7 @@ def test_from_path_lexer_override():
     try:
         os.write(fh, b"import this\n")
         syntax = Syntax.from_path(path, lexer="rust")
-        assert syntax.lexer.name is "Rust"
+        assert syntax.lexer.name == "Rust"
         assert syntax.code == "import this\n"
     finally:
         os.remove(path)
-- 
2.35.1

From f15dc3ea0b59d5fc04341d3f634f0e61c05a84db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Tue, 1 Feb 2022 15:10:32 +0100
Subject: [PATCH 2/2] Fix test_inspect failures on PyPy3

Mark the test_inspect tests failing on PyPy3 due to different output
to be skipped appropriately.
---
 CHANGELOG.md          | 2 +-
 tests/test_inspect.py | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/tests/test_inspect.py b/tests/test_inspect.py
index 63c5f06..b4c1d2a 100644
--- a/tests/test_inspect.py
+++ b/tests/test_inspect.py
@@ -32,6 +32,11 @@ skip_py310 = pytest.mark.skipif(
     reason="rendered differently on py3.10",
 )
 
+skip_pypy3 = pytest.mark.skipif(
+    hasattr(sys, "pypy_version_info"),
+    reason="rendered differently on pypy3",
+)
+
 
 def render(obj, methods=False, value=False, width=50) -> str:
     console = Console(file=io.StringIO(), width=width, legacy_windows=False)
@@ -81,6 +86,7 @@ def test_render():
     assert expected == result
 
 
+@skip_pypy3
 def test_inspect_text():
     expected = (
         "╭──────────────── <class 'str'> ─────────────────╮\n"
@@ -98,6 +104,7 @@ def test_inspect_text():
 
 @skip_py36
 @skip_py37
+@skip_pypy3
 def test_inspect_empty_dict():
     expected = (
         "╭──────────────── <class 'dict'> ────────────────╮\n"
@@ -119,6 +126,7 @@ def test_inspect_empty_dict():
     assert render({}).startswith(expected)
 
 
+@skip_pypy3
 def test_inspect_builtin_function():
     expected = (
         "╭────────── <built-in function print> ───────────╮\n"
@@ -237,6 +245,7 @@ def test_inspect_integer_with_methods():
 
 @skip_py36
 @skip_py37
+@skip_pypy3
 def test_broken_call_attr():
     class NotCallable:
         __call__ = 5  # Passes callable() but isn't really callable
-- 
2.35.1

