Skip to content

Commit

Permalink
Merge branch 'main' into context_manager
Browse files Browse the repository at this point in the history
  • Loading branch information
radarhere committed Jan 10, 2025
2 parents 68cbf93 + 3111e37 commit a57d0e0
Show file tree
Hide file tree
Showing 9 changed files with 11 additions and 39 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/test-mingw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,9 @@ jobs:
mingw-w64-x86_64-libtiff \
mingw-w64-x86_64-libwebp \
mingw-w64-x86_64-openjpeg2 \
mingw-w64-x86_64-python3-numpy \
mingw-w64-x86_64-python3-olefile \
mingw-w64-x86_64-python3-pip \
mingw-w64-x86_64-python-numpy \
mingw-w64-x86_64-python-olefile \
mingw-w64-x86_64-python-pip \
mingw-w64-x86_64-python-pytest \
mingw-w64-x86_64-python-pytest-cov \
mingw-w64-x86_64-python-pytest-timeout \
Expand Down
7 changes: 0 additions & 7 deletions Tests/helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,19 +141,12 @@ def assert_image_similar_tofile(
filename: str,
epsilon: float,
msg: str | None = None,
mode: str | None = None,
) -> None:
img: Image.Image
with Image.open(filename) as img:
if mode:
img = img.convert(mode)
assert_image_similar(a, img, epsilon, msg)


def assert_all_same(items: Sequence[Any], msg: str | None = None) -> None:
assert items.count(items[0]) == len(items), msg


def assert_not_all_same(items: Sequence[Any], msg: str | None = None) -> None:
assert items.count(items[0]) != len(items), msg

Expand Down
17 changes: 3 additions & 14 deletions Tests/test_file_apng.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,14 +341,9 @@ def test_apng_syntax_errors() -> None:
im.load()

# we can handle this case gracefully
exception = None
with Image.open("Tests/images/apng/syntax_num_frames_low.png") as im:
assert isinstance(im, PngImagePlugin.PngImageFile)
try:
im.seek(im.n_frames - 1)
except Exception as e:
exception = e
assert exception is None
im.seek(im.n_frames - 1)

with pytest.raises(OSError):
with Image.open("Tests/images/apng/syntax_num_frames_high.png") as im:
Expand Down Expand Up @@ -448,14 +443,8 @@ def test_apng_save_split_fdat(tmp_path: Path) -> None:
)
with Image.open(test_file) as im:
assert isinstance(im, PngImagePlugin.PngImageFile)

exception = None
try:
im.seek(im.n_frames - 1)
im.load()
except Exception as e:
exception = e
assert exception is None
im.seek(im.n_frames - 1)
im.load()


def test_apng_save_duration_loop(tmp_path: Path) -> None:
Expand Down
5 changes: 1 addition & 4 deletions Tests/test_file_iptc.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,7 @@ def test_getiptcinfo_fotostation() -> None:

# Assert
assert iptc is not None
for tag in iptc.keys():
if tag[0] == 240:
return
pytest.fail("FotoStation tag not found")
assert 240 in (tag[0] for tag in iptc.keys()), "FotoStation tag not found"


def test_getiptcinfo_zero_padding() -> None:
Expand Down
3 changes: 1 addition & 2 deletions Tests/test_file_jpeg2k.py
Original file line number Diff line number Diff line change
Expand Up @@ -497,8 +497,7 @@ def test_plt_marker(card: ImageFile.ImageFile) -> None:
out.seek(0)
while True:
marker = out.read(2)
if not marker:
pytest.fail("End of stream without PLT")
assert marker, "End of stream without PLT"

jp2_boxid = _binary.i16be(marker)
if jp2_boxid == 0xFF4F:
Expand Down
6 changes: 1 addition & 5 deletions Tests/test_file_libtiff.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,7 @@ def _assert_noerr(self, tmp_path: Path, im: ImageFile.ImageFile) -> None:
im.getdata()

assert isinstance(im, TiffImagePlugin.TiffImageFile)
try:
assert im._compression == "group4"
except AttributeError:
print("No _compression")
print(dir(im))
assert im._compression == "group4"

# can we write it back out, in a different form.
out = str(tmp_path / "temp.png")
Expand Down
2 changes: 0 additions & 2 deletions Tests/test_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,6 @@ def test_pathlib(self, tmp_path: Path) -> None:
if ext == ".jp2" and not features.check_codec("jpg_2000"):
pytest.skip("jpg_2000 not available")
temp_file = str(tmp_path / ("temp." + ext))
if os.path.exists(temp_file):
os.remove(temp_file)
im.save(Path(temp_file))

def test_fp_name(self, tmp_path: Path) -> None:
Expand Down
2 changes: 1 addition & 1 deletion Tests/test_image_access.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ def test_putpixel_overflow_error(self, mode: str) -> None:


class TestEmbeddable:
@pytest.mark.xfail(reason="failing test")
@pytest.mark.xfail(not (sys.version_info >= (3, 13)), reason="failing test")
@pytest.mark.skipif(not is_win32(), reason="requires Windows")
def test_embeddable(self) -> None:
import ctypes
Expand Down
2 changes: 1 addition & 1 deletion src/PIL/SpiderImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ def makeSpiderHeader(im: Image.Image) -> list[bytes]:


def _save(im: Image.Image, fp: IO[bytes], filename: str | bytes) -> None:
if im.mode[0] != "F":
if im.mode != "F":
im = im.convert("F")

hdr = makeSpiderHeader(im)
Expand Down

0 comments on commit a57d0e0

Please sign in to comment.