If removal version has arrived, raise an error

This commit is contained in:
Andrew Murray 2022-04-08 21:22:31 +10:00
parent aae38c55b2
commit e824558076
2 changed files with 28 additions and 3 deletions

View File

@ -29,6 +29,27 @@ def test_unknown_version():
_deprecate.deprecate("Old thing", 12345, "new thing")
@pytest.mark.parametrize(
"deprecated, plural, expected",
[
(
"Old thing",
False,
r"Old thing is deprecated and should be removed\.",
),
(
"Old things",
True,
r"Old things are deprecated and should be removed\.",
),
],
)
def test_old_version(deprecated, plural, expected):
expected = r""
with pytest.raises(RuntimeError, match=expected):
_deprecate.deprecate(deprecated, 1, plural=plural)
def test_plural():
expected = (
r"Old things are deprecated and will be removed in Pillow 10 \(2023-07-01\)\. "

View File

@ -2,6 +2,8 @@ from __future__ import annotations
import warnings
from . import __version__
def deprecate(
deprecated: str,
@ -38,10 +40,12 @@ def deprecate(
is_ = "are" if plural else "is"
if when == 10:
removed = "Pillow 10 (2023-07-01)"
elif when is None:
if when is None:
removed = "a future version"
elif when <= int(__version__.split(".")[0]):
raise RuntimeError(f"{deprecated} {is_} deprecated and should be removed.")
elif when == 10:
removed = "Pillow 10 (2023-07-01)"
else:
raise ValueError(f"Unknown removal version, update {__name__}?")