mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-24 20:51:16 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from __future__ import annotations
 | |
| 
 | |
| import pytest
 | |
| 
 | |
| from PIL import _deprecate
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "version, expected",
 | |
|     [
 | |
|         (
 | |
|             12,
 | |
|             "Old thing is deprecated and will be removed in Pillow 12 "
 | |
|             r"\(2025-10-15\)\. Use new thing instead\.",
 | |
|         ),
 | |
|         (
 | |
|             None,
 | |
|             r"Old thing is deprecated and will be removed in a future version\. "
 | |
|             r"Use new thing instead\.",
 | |
|         ),
 | |
|     ],
 | |
| )
 | |
| def test_version(version: int | None, expected: str) -> None:
 | |
|     with pytest.warns(DeprecationWarning, match=expected):
 | |
|         _deprecate.deprecate("Old thing", version, "new thing")
 | |
| 
 | |
| 
 | |
| def test_unknown_version() -> None:
 | |
|     expected = r"Unknown removal version: 12345. Update PIL\._deprecate\?"
 | |
|     with pytest.raises(ValueError, match=expected):
 | |
|         _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: str, plural: bool, expected: str) -> None:
 | |
|     expected = r""
 | |
|     with pytest.raises(RuntimeError, match=expected):
 | |
|         _deprecate.deprecate(deprecated, 1, plural=plural)
 | |
| 
 | |
| 
 | |
| def test_plural() -> None:
 | |
|     expected = (
 | |
|         r"Old things are deprecated and will be removed in Pillow 12 \(2025-10-15\)\. "
 | |
|         r"Use new thing instead\."
 | |
|     )
 | |
|     with pytest.warns(DeprecationWarning, match=expected):
 | |
|         _deprecate.deprecate("Old things", 12, "new thing", plural=True)
 | |
| 
 | |
| 
 | |
| def test_replacement_and_action() -> None:
 | |
|     expected = "Use only one of 'replacement' and 'action'"
 | |
|     with pytest.raises(ValueError, match=expected):
 | |
|         _deprecate.deprecate(
 | |
|             "Old thing", 12, replacement="new thing", action="Upgrade to new thing"
 | |
|         )
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "action",
 | |
|     [
 | |
|         "Upgrade to new thing",
 | |
|         "Upgrade to new thing.",
 | |
|     ],
 | |
| )
 | |
| def test_action(action: str) -> None:
 | |
|     expected = (
 | |
|         r"Old thing is deprecated and will be removed in Pillow 12 \(2025-10-15\)\. "
 | |
|         r"Upgrade to new thing\."
 | |
|     )
 | |
|     with pytest.warns(DeprecationWarning, match=expected):
 | |
|         _deprecate.deprecate("Old thing", 12, action=action)
 | |
| 
 | |
| 
 | |
| def test_no_replacement_or_action() -> None:
 | |
|     expected = (
 | |
|         r"Old thing is deprecated and will be removed in Pillow 12 \(2025-10-15\)"
 | |
|     )
 | |
|     with pytest.warns(DeprecationWarning, match=expected):
 | |
|         _deprecate.deprecate("Old thing", 12)
 |