mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-10 19:56:47 +03:00
52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
import unittest
|
|
|
|
import pytest
|
|
from PIL import Image, TarIO
|
|
|
|
from .helper import PillowTestCase, is_pypy
|
|
|
|
codecs = dir(Image.core)
|
|
|
|
# Sample tar archive
|
|
TEST_TAR_FILE = "Tests/images/hopper.tar"
|
|
|
|
|
|
class TestFileTar(PillowTestCase):
|
|
def setUp(self):
|
|
if "zip_decoder" not in codecs and "jpeg_decoder" not in codecs:
|
|
self.skipTest("neither jpeg nor zip support available")
|
|
|
|
def test_sanity(self):
|
|
for codec, test_path, format in [
|
|
["zip_decoder", "hopper.png", "PNG"],
|
|
["jpeg_decoder", "hopper.jpg", "JPEG"],
|
|
]:
|
|
if codec in codecs:
|
|
with TarIO.TarIO(TEST_TAR_FILE, test_path) as tar:
|
|
with Image.open(tar) as im:
|
|
im.load()
|
|
self.assertEqual(im.mode, "RGB")
|
|
self.assertEqual(im.size, (128, 128))
|
|
self.assertEqual(im.format, format)
|
|
|
|
@unittest.skipIf(is_pypy(), "Requires CPython")
|
|
def test_unclosed_file(self):
|
|
def open():
|
|
TarIO.TarIO(TEST_TAR_FILE, "hopper.jpg")
|
|
|
|
pytest.warns(ResourceWarning, open)
|
|
|
|
def test_close(self):
|
|
def open():
|
|
tar = TarIO.TarIO(TEST_TAR_FILE, "hopper.jpg")
|
|
tar.close()
|
|
|
|
pytest.warns(None, open)
|
|
|
|
def test_contextmanager(self):
|
|
def open():
|
|
with TarIO.TarIO(TEST_TAR_FILE, "hopper.jpg"):
|
|
pass
|
|
|
|
pytest.warns(None, open)
|