From f0fb1565ddd74212ea3da92450bb9dd4050ff67e Mon Sep 17 00:00:00 2001 From: Dr-Blank <64108942+Dr-Blank@users.noreply.github.com> Date: Mon, 18 Mar 2024 10:32:13 -0400 Subject: [PATCH] regression test for the bugfix - generic method to check if operation was performed - add test of deinterlace operation - add test for multiple operations performed if required (fails on master) --- test/plugins/test_art.py | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/test/plugins/test_art.py b/test/plugins/test_art.py index b2d1d74b4..17cbf7f3c 100644 --- a/test/plugins/test_art.py +++ b/test/plugins/test_art.py @@ -862,6 +862,10 @@ class ArtForAlbumTest(UseThePlugin): IMG_225x225_SIZE = os.stat(util.syspath(IMG_225x225)).st_size IMG_348x348_SIZE = os.stat(util.syspath(IMG_348x348)).st_size + RESIZE_OP = "resize" + DEINTERLACE_OP = "deinterlace" + REFORMAT_OP = "reformat" + def setUp(self): super().setUp() @@ -892,11 +896,13 @@ class ArtForAlbumTest(UseThePlugin): else: self.assertIsNone(candidate) - def _assertImageResized(self, image_file, should_resize): # noqa + def _assertImageOperated( + self, image_file, operation, should_operate + ): # noqa self.image_file = image_file - with patch.object(ArtResizer.shared, "resize") as mock_resize: + with patch.object(ArtResizer.shared, operation) as mock_operation: self.plugin.art_for_album(self.album, [""], True) - self.assertEqual(mock_resize.called, should_resize) + self.assertEqual(mock_operation.called, should_operate) def _require_backend(self): """Skip the test if the art resizer doesn't have ImageMagick or @@ -948,31 +954,45 @@ class ArtForAlbumTest(UseThePlugin): def test_resize_if_necessary(self): self._require_backend() self.plugin.maxwidth = 300 - self._assertImageResized(self.IMG_225x225, False) - self._assertImageResized(self.IMG_348x348, True) + self._assertImageOperated(self.IMG_225x225, self.RESIZE_OP, False) + self._assertImageOperated(self.IMG_348x348, self.RESIZE_OP, True) def test_fileresize(self): self._require_backend() self.plugin.max_filesize = self.IMG_225x225_SIZE // 2 - self._assertImageResized(self.IMG_225x225, True) + self._assertImageOperated(self.IMG_225x225, self.RESIZE_OP, True) def test_fileresize_if_necessary(self): self._require_backend() self.plugin.max_filesize = self.IMG_225x225_SIZE - self._assertImageResized(self.IMG_225x225, False) + self._assertImageOperated(self.IMG_225x225, self.RESIZE_OP, False) self._assertImageIsValidArt(self.IMG_225x225, True) def test_fileresize_no_scale(self): self._require_backend() self.plugin.maxwidth = 300 self.plugin.max_filesize = self.IMG_225x225_SIZE // 2 - self._assertImageResized(self.IMG_225x225, True) + self._assertImageOperated(self.IMG_225x225, self.RESIZE_OP, True) def test_fileresize_and_scale(self): self._require_backend() self.plugin.maxwidth = 200 self.plugin.max_filesize = self.IMG_225x225_SIZE // 2 - self._assertImageResized(self.IMG_225x225, True) + self._assertImageOperated(self.IMG_225x225, self.RESIZE_OP, True) + + def test_deinterlace(self): + self._require_backend() + self.plugin.deinterlace = True + self._assertImageOperated(self.IMG_225x225, self.DEINTERLACE_OP, True) + self.plugin.deinterlace = False + self._assertImageOperated(self.IMG_225x225, self.DEINTERLACE_OP, False) + + def test_deinterlace_and_resize(self): + self._require_backend() + self.plugin.maxwidth = 300 + self.plugin.deinterlace = True + self._assertImageOperated(self.IMG_348x348, self.DEINTERLACE_OP, True) + self._assertImageOperated(self.IMG_348x348, self.RESIZE_OP, True) class DeprecatedConfigTest(_common.TestCase):