2023-12-21 14:13:31 +03:00
|
|
|
from __future__ import annotations
|
2024-01-20 14:23:03 +03:00
|
|
|
|
2020-02-12 19:29:19 +03:00
|
|
|
import pytest
|
2020-08-07 13:28:33 +03:00
|
|
|
|
2020-01-01 08:07:03 +03:00
|
|
|
from PIL import Image
|
|
|
|
|
2022-06-16 01:36:43 +03:00
|
|
|
from .helper import assert_image_equal_tofile
|
|
|
|
|
2020-02-18 15:30:56 +03:00
|
|
|
FpxImagePlugin = pytest.importorskip(
|
|
|
|
"PIL.FpxImagePlugin", reason="olefile not installed"
|
2020-02-12 19:29:19 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
|
2022-06-16 01:36:43 +03:00
|
|
|
def test_sanity():
|
|
|
|
with Image.open("Tests/images/input_bw_one_band.fpx") as im:
|
|
|
|
assert im.mode == "L"
|
|
|
|
assert im.size == (70, 46)
|
|
|
|
assert im.format == "FPX"
|
|
|
|
|
|
|
|
assert_image_equal_tofile(im, "Tests/images/input_bw_one_band.png")
|
|
|
|
|
|
|
|
|
2023-03-11 15:11:43 +03:00
|
|
|
def test_close():
|
|
|
|
with Image.open("Tests/images/input_bw_one_band.fpx") as im:
|
|
|
|
pass
|
|
|
|
assert im.ole.fp.closed
|
|
|
|
|
|
|
|
im = Image.open("Tests/images/input_bw_one_band.fpx")
|
|
|
|
im.close()
|
|
|
|
assert im.ole.fp.closed
|
|
|
|
|
|
|
|
|
2020-02-12 19:29:19 +03:00
|
|
|
def test_invalid_file():
|
|
|
|
# Test an invalid OLE file
|
|
|
|
invalid_file = "Tests/images/flower.jpg"
|
|
|
|
with pytest.raises(SyntaxError):
|
|
|
|
FpxImagePlugin.FpxImageFile(invalid_file)
|
2015-07-03 08:03:25 +03:00
|
|
|
|
2020-02-12 19:29:19 +03:00
|
|
|
# Test a valid OLE file, but not an FPX file
|
|
|
|
ole_file = "Tests/images/test-ole-file.doc"
|
|
|
|
with pytest.raises(SyntaxError):
|
|
|
|
FpxImagePlugin.FpxImageFile(ole_file)
|
2015-07-03 08:03:25 +03:00
|
|
|
|
2020-01-01 08:07:03 +03:00
|
|
|
|
2020-02-12 19:29:19 +03:00
|
|
|
def test_fpx_invalid_number_of_bands():
|
2020-04-07 09:58:21 +03:00
|
|
|
with pytest.raises(OSError, match="Invalid number of bands"):
|
2021-02-11 13:43:54 +03:00
|
|
|
with Image.open("Tests/images/input_bw_five_bands.fpx"):
|
|
|
|
pass
|