Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
devel:languages:python
python-json_tricks
support-pytest-8.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File support-pytest-8.patch of Package python-json_tricks
From 487af357083fa87cc50adcecb08c48c6c9637284 Mon Sep 17 00:00:00 2001 From: Steve Kowalik <steven@wedontsleep.org> Date: Mon, 19 Aug 2024 15:39:25 +1000 Subject: [PATCH] Do not use warns(None) to check for no warnings warns(None) is an anti-pattern, and is explicitly forbidden starting from pytest 8.0. Instead, we catch all warnings, and filter them to be errors, so they will raise an (uncaught) exception. Drive-by importing warns from pytest rather than the internal name. --- tests/test_bare.py | 24 ++++++++++-------------- tests/test_np.py | 8 ++++---- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/tests/test_bare.py b/tests/test_bare.py index d8ca447..a3c67c9 100644 --- a/tests/test_bare.py +++ b/tests/test_bare.py @@ -10,10 +10,10 @@ from math import pi, exp from os.path import join from tempfile import mkdtemp +from warnings import catch_warnings, simplefilter import pytest -from _pytest.recwarn import warns -from pytest import raises, fail +from pytest import raises, fail, warns from json_tricks import fallback_ignore_unknown, DuplicateJsonKeyException from json_tricks.nonp import strip_comments, dump, dumps, load, loads, \ @@ -168,33 +168,29 @@ def test_ignore_comments_deprecation(): loads(test_json_with_comments) # Second time there should be no warning - # noinspection PyTypeChecker - with warns(None) as captured: + with catch_warnings(): + simplefilter("error") loaded = loads(test_json_with_comments) - assert len(captured) == 0 assert loaded == test_object_for_comment_strings # Passing a string without comments should not have a warning loads._ignore_comments_warned_ = False - # noinspection PyTypeChecker - with warns(None) as captured: + with catch_warnings(): + simplefilter("error") loaded = loads(test_json_without_comments) - assert len(captured) == 0 # Passing True for argument explicitly should not have a warning loads._ignore_comments_warned_ = False - # noinspection PyTypeChecker - with warns(None) as captured: + with catch_warnings(): + simplefilter("error") loaded = loads(test_json_with_comments, ignore_comments=True) - assert len(captured) == 0 assert loaded == test_object_for_comment_strings # Passing False for argument explicitly should not have a warning loads._ignore_comments_warned_ = False - # noinspection PyTypeChecker - with warns(None) as captured: + with catch_warnings(): + simplefilter("error") loaded = loads(test_json_without_comments, ignore_comments=False) - assert len(captured) == 0 assert loaded == test_object_for_comment_strings diff --git a/tests/test_np.py b/tests/test_np.py index 29eb07b..4e28393 100644 --- a/tests/test_np.py +++ b/tests/test_np.py @@ -5,8 +5,9 @@ from os.path import join from tempfile import mkdtemp import sys +from warnings import catch_warnings, simplefilter -from _pytest.recwarn import warns +from pytest import warns from numpy import arange, ones, array, array_equal, finfo, iinfo, pi from numpy import int8, int16, int32, int64, uint8, uint16, uint32, uint64, \ float16, float32, float64, complex64, complex128, zeros, ndindex @@ -217,10 +218,9 @@ def test_compact_mode_unspecified(): data = [array([[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0]]), array([pi, exp(1)])] with warns(JsonTricksDeprecation): gz_json_1 = dumps(data, compression=True) - # noinspection PyTypeChecker - with warns(None) as captured: + with catch_warnings(): + simplefilter("error") gz_json_2 = dumps(data, compression=True) - assert len(captured) == 0 assert gz_json_1 == gz_json_2 json = gzip_decompress(gz_json_1).decode('ascii') assert json == '[{"__ndarray__": [[1.0, 2.0, 3.0, 4.0], [5.0, 6.0, 7.0, 8.0]], "dtype": "float64", "shape": [2, 4], "Corder": true}, ' \
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor