mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-03-13 01:05:48 +03:00
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import io
|
|
import struct
|
|
|
|
import pytest
|
|
|
|
from PIL import FtexImagePlugin, Image
|
|
|
|
from .helper import assert_image_equal_tofile, assert_image_similar
|
|
|
|
|
|
def test_load_raw() -> None:
|
|
with Image.open("Tests/images/ftex_uncompressed.ftu") as im:
|
|
assert_image_equal_tofile(im, "Tests/images/ftex_uncompressed.png")
|
|
|
|
|
|
def test_load_dxt1() -> None:
|
|
with Image.open("Tests/images/ftex_dxt1.ftc") as im:
|
|
with Image.open("Tests/images/ftex_dxt1.png") as target:
|
|
assert_image_similar(im, target.convert("RGBA"), 15)
|
|
|
|
|
|
def test_invalid_file() -> None:
|
|
invalid_file = "Tests/images/flower.jpg"
|
|
|
|
with pytest.raises(SyntaxError):
|
|
FtexImagePlugin.FtexImageFile(invalid_file)
|
|
|
|
|
|
def test_invalid_texture() -> None:
|
|
with open("Tests/images/ftex_dxt1.ftc", "rb") as fp:
|
|
data = fp.read()
|
|
|
|
# Change texture compression format
|
|
data = data[:24] + struct.pack("<i", 2) + data[28:]
|
|
|
|
with pytest.raises(ValueError, match="Invalid texture compression format: 2"):
|
|
with Image.open(io.BytesIO(data)):
|
|
pass
|