Convert test_properties to use parametrize

This commit is contained in:
Hugo van Kemenade 2023-01-08 14:37:46 +02:00
parent f30eb38e31
commit a5e046fb49

View File

@ -1,3 +1,5 @@
import pytest
from PIL import Image, ImageMode from PIL import Image, ImageMode
from .helper import hopper from .helper import hopper
@ -49,23 +51,25 @@ def test_sanity():
assert m.typestr == "|u1" assert m.typestr == "|u1"
def test_properties(): @pytest.mark.parametrize(
def check(mode, *result): "mode, expected_base, expected_type, expected_bands, expected_band_names",
signature = ( (
Image.getmodebase(mode), ("1", "L", "L", 1, ("1",)),
Image.getmodetype(mode), ("L", "L", "L", 1, ("L",)),
Image.getmodebands(mode), ("P", "P", "L", 1, ("P",)),
Image.getmodebandnames(mode), ("I", "L", "I", 1, ("I",)),
) ("F", "L", "F", 1, ("F",)),
assert signature == result ("RGB", "RGB", "L", 3, ("R", "G", "B")),
("RGBA", "RGB", "L", 4, ("R", "G", "B", "A")),
check("1", "L", "L", 1, ("1",)) ("RGBX", "RGB", "L", 4, ("R", "G", "B", "X")),
check("L", "L", "L", 1, ("L",)) ("CMYK", "RGB", "L", 4, ("C", "M", "Y", "K")),
check("P", "P", "L", 1, ("P",)) ("YCbCr", "RGB", "L", 3, ("Y", "Cb", "Cr")),
check("I", "L", "I", 1, ("I",)) ),
check("F", "L", "F", 1, ("F",)) )
check("RGB", "RGB", "L", 3, ("R", "G", "B")) def test_properties(
check("RGBA", "RGB", "L", 4, ("R", "G", "B", "A")) mode, expected_base, expected_type, expected_bands, expected_band_names
check("RGBX", "RGB", "L", 4, ("R", "G", "B", "X")) ):
check("CMYK", "RGB", "L", 4, ("C", "M", "Y", "K")) assert Image.getmodebase(mode) == expected_base
check("YCbCr", "RGB", "L", 3, ("Y", "Cb", "Cr")) assert Image.getmodetype(mode) == expected_type
assert Image.getmodebands(mode) == expected_bands
assert Image.getmodebandnames(mode) == expected_band_names