Pillow/Tests/test_image_copy.py

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

54 lines
1.2 KiB
Python
Raw Normal View History

from __future__ import annotations
2024-01-20 14:23:03 +03:00
import copy
2022-08-23 14:41:32 +03:00
import pytest
from PIL import Image
2023-04-22 04:18:56 +03:00
from .helper import hopper, skip_unless_feature
2020-01-27 14:46:52 +03:00
2022-08-23 14:41:32 +03:00
@pytest.mark.parametrize("mode", ("1", "P", "L", "RGB", "I", "F"))
def test_copy(mode):
cropped_coordinates = (10, 10, 20, 20)
cropped_size = (10, 10)
2022-08-23 14:41:32 +03:00
# Internal copy method
im = hopper(mode)
out = im.copy()
assert out.mode == im.mode
assert out.size == im.size
# Python's copy method
im = hopper(mode)
out = copy.copy(im)
assert out.mode == im.mode
assert out.size == im.size
# Internal copy method on a cropped image
im = hopper(mode)
out = im.crop(cropped_coordinates).copy()
assert out.mode == im.mode
assert out.size == cropped_size
# Python's copy method on a cropped image
im = hopper(mode)
out = copy.copy(im.crop(cropped_coordinates))
assert out.mode == im.mode
assert out.size == cropped_size
2020-01-27 14:46:52 +03:00
def test_copy_zero():
im = Image.new("RGB", (0, 0))
out = im.copy()
assert out.mode == im.mode
assert out.size == im.size
2023-04-22 04:18:56 +03:00
@skip_unless_feature("libtiff")
def test_deepcopy():
with Image.open("Tests/images/g4_orientation_5.tif") as im:
out = copy.deepcopy(im)
assert out.size == (590, 88)