Pillow/Tests/test_file_tar.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

48 lines
1.1 KiB
Python
Raw Permalink Normal View History

from __future__ import annotations
2024-01-20 14:23:03 +03:00
import warnings
import pytest
from PIL import Image, TarIO, features
2020-02-12 19:29:19 +03:00
from .helper import is_pypy
2014-09-04 13:21:19 +04:00
# Sample tar archive
TEST_TAR_FILE = "Tests/images/hopper.tar"
@pytest.mark.parametrize(
"codec, test_path, format",
(
("zlib", "hopper.png", "PNG"),
("jpg", "hopper.jpg", "JPEG"),
),
)
2024-02-12 13:06:17 +03:00
def test_sanity(codec: str, test_path: str, format: str) -> None:
if features.check(codec):
with TarIO.TarIO(TEST_TAR_FILE, test_path) as tar:
with Image.open(tar) as im:
im.load()
assert im.mode == "RGB"
assert im.size == (128, 128)
assert im.format == format
2020-02-12 19:29:19 +03:00
@pytest.mark.skipif(is_pypy(), reason="Requires CPython")
def test_unclosed_file() -> None:
2023-02-23 16:30:38 +03:00
with pytest.warns(ResourceWarning):
2020-02-12 19:29:19 +03:00
TarIO.TarIO(TEST_TAR_FILE, "hopper.jpg")
def test_close() -> None:
with warnings.catch_warnings():
2020-02-12 19:29:19 +03:00
tar = TarIO.TarIO(TEST_TAR_FILE, "hopper.jpg")
tar.close()
def test_contextmanager() -> None:
with warnings.catch_warnings():
2020-02-12 19:29:19 +03:00
with TarIO.TarIO(TEST_TAR_FILE, "hopper.jpg"):
pass