Skip to content

Commit 847fba4

Browse files
authored
Update test_misc.py for 3.13 subinterpreter changes (#4426)
1 parent ba93835 commit 847fba4

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

pytests/tests/test_misc.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import pytest
77

88
if sys.version_info >= (3, 13):
9-
subinterpreters = pytest.importorskip("subinterpreters")
9+
subinterpreters = pytest.importorskip("_interpreters")
1010
else:
1111
subinterpreters = pytest.importorskip("_xxsubinterpreters")
1212

@@ -36,17 +36,27 @@ def test_multiple_imports_same_interpreter_ok():
3636
reason="PyPy and GraalPy do not support subinterpreters",
3737
)
3838
def test_import_in_subinterpreter_forbidden():
39+
sub_interpreter = subinterpreters.create()
3940
if sys.version_info < (3, 12):
4041
expected_error = "PyO3 modules do not yet support subinterpreters, see https://github.com/PyO3/pyo3/issues/576"
4142
else:
4243
expected_error = "module pyo3_pytests.pyo3_pytests does not support loading in subinterpreters"
4344

44-
sub_interpreter = subinterpreters.create()
45-
with pytest.raises(
46-
subinterpreters.RunFailedError,
47-
match=expected_error,
48-
):
49-
subinterpreters.run_string(sub_interpreter, "import pyo3_pytests.pyo3_pytests")
45+
if sys.version_info < (3, 13):
46+
# Python 3.12 subinterpreters had a special error for this
47+
with pytest.raises(
48+
subinterpreters.RunFailedError,
49+
match=expected_error,
50+
):
51+
subinterpreters.run_string(
52+
sub_interpreter, "import pyo3_pytests.pyo3_pytests"
53+
)
54+
else:
55+
res = subinterpreters.run_string(
56+
sub_interpreter, "import pyo3_pytests.pyo3_pytests"
57+
)
58+
assert res.type.__name__ == "ImportError"
59+
assert res.msg == expected_error
5060

5161
subinterpreters.destroy(sub_interpreter)
5262

0 commit comments

Comments
 (0)