mirror of
https://github.com/beetbox/beets.git
synced 2025-12-29 03:52:51 +01:00
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)
This commit is contained in:
parent
66b459b8d0
commit
f0fb1565dd
1 changed files with 29 additions and 9 deletions
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Reference in a new issue