diff --git a/tests/pytest.ini b/tests/pytest.ini index c47cbe9c1..a3871d6c3 100644 --- a/tests/pytest.ini +++ b/tests/pytest.ini @@ -7,11 +7,11 @@ addopts = -rs # capture only Python print and C++ py::print, but not C output (low-level Python errors) --capture=sys - # enable all warnings - -Wa filterwarnings = # make warnings into errors but ignore certain third-party extension issues error + # somehow, some DeprecationWarnings do not get turned into errors + always::DeprecationWarning # importing scipy submodules on some version of Python ignore::ImportWarning # bogus numpy ABI warning (see numpy/#432) diff --git a/tests/test_builtin_casters.py b/tests/test_builtin_casters.py index cb37dbcb3..fda038433 100644 --- a/tests/test_builtin_casters.py +++ b/tests/test_builtin_casters.py @@ -299,7 +299,12 @@ def test_int_convert(): assert convert(7) == 7 assert noconvert(7) == 7 cant_convert(3.14159) - assert convert(Int()) == 42 + # TODO: Avoid DeprecationWarning in `PyLong_AsLong` (and similar) + if (3, 8) <= env.PY < (3, 10): + with pytest.deprecated_call(): + assert convert(Int()) == 42 + else: + assert convert(Int()) == 42 requires_conversion(Int()) cant_convert(NotInt()) cant_convert(Float()) @@ -329,7 +334,12 @@ def test_numpy_int_convert(): assert noconvert(np.intc(42)) == 42 # The implicit conversion from np.float32 is undesirable but currently accepted. - assert convert(np.float32(3.14159)) == 3 + # TODO: Avoid DeprecationWarning in `PyLong_AsLong` (and similar) + if (3, 8) <= env.PY < (3, 10): + with pytest.deprecated_call(): + assert convert(np.float32(3.14159)) == 3 + else: + assert convert(np.float32(3.14159)) == 3 require_implicit(np.float32(3.14159)) diff --git a/tests/test_class.cpp b/tests/test_class.cpp index 6ce928ca9..bd545e8c6 100644 --- a/tests/test_class.cpp +++ b/tests/test_class.cpp @@ -434,8 +434,7 @@ TEST_SUBMODULE(class_, m) { struct SamePointer {}; static SamePointer samePointer; py::class_>(m, "SamePointer") - .def(py::init([]() { return &samePointer; })) - .def("__del__", [](SamePointer&) { py::print("__del__ called"); }); + .def(py::init([]() { return &samePointer; })); struct Empty {}; py::class_(m, "Empty")