From 8b14b03620980370464a4436f9a6ac53d7935d26 Mon Sep 17 00:00:00 2001 From: Matthias Bussonnier Date: Thu, 22 Oct 2020 14:41:06 -0700 Subject: [PATCH] Turn UserWarnings into errors And turn then back into only warnings into relevant tests. This ensure that we are not using deprecated functionalities, except when testing for it. --- pytest.ini | 1 + zarr/tests/test_creation.py | 45 ++++++++++++++++++++----------------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/pytest.ini b/pytest.ini index 61a0a99ab5..fc5de903c2 100644 --- a/pytest.ini +++ b/pytest.ini @@ -3,4 +3,5 @@ doctest_optionflags = NORMALIZE_WHITESPACE ELLIPSIS IGNORE_EXCEPTION_DETAIL addopts = --durations=10 filterwarnings = error::DeprecationWarning:zarr.* + error::UserWarning:zarr.* ignore:PY_SSIZE_T_CLEAN will be required.*:DeprecationWarning diff --git a/zarr/tests/test_creation.py b/zarr/tests/test_creation.py index 44f387c2da..cf12f755dc 100644 --- a/zarr/tests/test_creation.py +++ b/zarr/tests/test_creation.py @@ -2,6 +2,7 @@ import os.path import shutil import tempfile +import warnings import numpy as np import pytest @@ -445,29 +446,33 @@ def test_create(): def test_compression_args(): - z = create(100, compression='zlib', compression_opts=9) - assert isinstance(z, Array) - assert 'zlib' == z.compressor.codec_id - assert 9 == z.compressor.level - - # 'compressor' overrides 'compression' - z = create(100, compressor=Zlib(9), compression='bz2', compression_opts=1) - assert isinstance(z, Array) - assert 'zlib' == z.compressor.codec_id - assert 9 == z.compressor.level - - # 'compressor' ignores 'compression_opts' - z = create(100, compressor=Zlib(9), compression_opts=1) - assert isinstance(z, Array) - assert 'zlib' == z.compressor.codec_id - assert 9 == z.compressor.level + with warnings.catch_warnings(): + warnings.simplefilter("default") + z = create(100, compression='zlib', compression_opts=9) + assert isinstance(z, Array) + assert 'zlib' == z.compressor.codec_id + assert 9 == z.compressor.level - with pytest.warns(UserWarning): # 'compressor' overrides 'compression' - create(100, compressor=Zlib(9), compression='bz2', compression_opts=1) - with pytest.warns(UserWarning): + with pytest.warns(UserWarning): + z = create(100, compressor=Zlib(9), compression="bz2", compression_opts=1) + assert isinstance(z, Array) + assert 'zlib' == z.compressor.codec_id + assert 9 == z.compressor.level + # 'compressor' ignores 'compression_opts' - create(100, compressor=Zlib(9), compression_opts=1) + with pytest.warns(UserWarning): + z = create(100, compressor=Zlib(9), compression_opts=1) + assert isinstance(z, Array) + assert 'zlib' == z.compressor.codec_id + assert 9 == z.compressor.level + + with pytest.warns(UserWarning): + # 'compressor' overrides 'compression' + create(100, compressor=Zlib(9), compression='bz2', compression_opts=1) + with pytest.warns(UserWarning): + # 'compressor' ignores 'compression_opts' + create(100, compressor=Zlib(9), compression_opts=1) def test_create_read_only():