Corrected check for libtiff feature#7975
Conversation
|
Should we use |
|
Ok, I've updated the commit. |
nulano
left a comment
There was a problem hiding this comment.
Do we want to use monkeypatch in case the save method raises an exception?
Tests/test_tiff_ifdrational.py
Outdated
| @pytest.mark.parametrize( | ||
| "libtiff", (pytest.param(True, marks=skip_unless_feature("libtiff")), False) | ||
| ) | ||
| def test_ifd_rational_save(tmp_path: Path, libtiff: bool) -> None: |
There was a problem hiding this comment.
| def test_ifd_rational_save(tmp_path: Path, libtiff: bool) -> None: | |
| def test_ifd_rational_save(monkeypatch: pytest.MonkeyPatch, tmp_path: Path, libtiff: bool) -> None: |
Tests/test_tiff_ifdrational.py
Outdated
| out = str(tmp_path / "temp.tiff") | ||
| res = IFDRational(301, 1) | ||
| im.save(out, dpi=(res, res), compression="raw") | ||
| TiffImagePlugin.WRITE_LIBTIFF = libtiff |
There was a problem hiding this comment.
| TiffImagePlugin.WRITE_LIBTIFF = libtiff | |
| monkeypatch.setattr(TiffImagePlugin, "WRITE_LIBTIFF", libtiff) |
Tests/test_tiff_ifdrational.py
Outdated
| im.save(out, dpi=(res, res), compression="raw") | ||
| TiffImagePlugin.WRITE_LIBTIFF = libtiff | ||
| im.save(out, dpi=(res, res), compression="raw") | ||
| TiffImagePlugin.WRITE_LIBTIFF = False |
There was a problem hiding this comment.
| TiffImagePlugin.WRITE_LIBTIFF = False |
|
I've pushed a commit to use monkeypatch whenever the tests set |
Tests/test_file_libtiff.py
Outdated
| libtiffs = [] | ||
| libtiffs = [False] | ||
| if Image.core.libtiff_support_custom_tags: | ||
| libtiffs.append(True) |
There was a problem hiding this comment.
This can also use pytest.mark.parametrize
nulano
left a comment
There was a problem hiding this comment.
Looks good; I just noticed one more test that can be parametrized.
Tests/test_imagesequence.py
Outdated
| TiffImagePlugin.READ_LIBTIFF = True | ||
| def test_libtiff(monkeypatch: pytest.MonkeyPatch) -> None: | ||
| monkeypatch.setattr(TiffImagePlugin, "READ_LIBTIFF", True) | ||
| _test_multipage_tiff() |
There was a problem hiding this comment.
While not as useful, these two tests can also be combined into one with pytest.mark.parametrize for slightly shorter code.
Pillow/Tests/test_tiff_ifdrational.py
Lines 55 to 61 in db21e7d
This is the wrong way around.
WRITE_LIBTIFFshould beTruewhen libtiff is available.To demonstrate, if I skip building libtiff on Windows, it fails. With this change, it passes.