Improve PaletteFile coverage (#9396)

This commit is contained in:
Hugo van Kemenade 2026-01-20 13:04:44 +02:00 committed by GitHub
commit e08f910db4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,10 +1,11 @@
from __future__ import annotations from __future__ import annotations
from io import BytesIO
from pathlib import Path from pathlib import Path
import pytest import pytest
from PIL import Image, ImagePalette from PIL import Image, ImagePalette, PaletteFile
from .helper import assert_image_equal, assert_image_equal_tofile from .helper import assert_image_equal, assert_image_equal_tofile
@ -202,6 +203,19 @@ def test_2bit_palette(tmp_path: Path) -> None:
assert_image_equal_tofile(img, outfile) assert_image_equal_tofile(img, outfile)
def test_getpalette() -> None:
b = BytesIO(b"0 1\n1 2 3 4")
p = PaletteFile.PaletteFile(b)
palette, rawmode = p.getpalette()
assert palette[:6] == b"\x01\x01\x01\x02\x03\x04"
assert rawmode == "RGB"
def test_invalid_palette() -> None: def test_invalid_palette() -> None:
with pytest.raises(OSError): with pytest.raises(OSError):
ImagePalette.load("Tests/images/hopper.jpg") ImagePalette.load("Tests/images/hopper.jpg")
b = BytesIO(b"1" * 101)
with pytest.raises(SyntaxError, match="bad palette file"):
PaletteFile.PaletteFile(b)