From 100b3d4d6590ccf7ebccb8a8074e6a46488ac6d8 Mon Sep 17 00:00:00 2001 From: Thomas Scholtes Date: Wed, 2 Apr 2014 22:15:00 +0200 Subject: [PATCH] Make mediafile tests independent of image order For MP3s mutagen stores image tags in a hash with the `APIC:...` key. The order of the images is therefore not well defined. A similar issue occurs with WMAs. --- test/test_mediafile.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/test/test_mediafile.py b/test/test_mediafile.py index 94c4a0ac0..19d2ceda8 100644 --- a/test/test_mediafile.py +++ b/test/test_mediafile.py @@ -84,22 +84,22 @@ class ImageStructureTestMixin(ArtTestMixin): self.assertEqual(len(mediafile.images), 2) - image = mediafile.images[0] + image = next(i for i in mediafile.images + if i.mime_type == 'image/png') self.assertEqual(image.data, self.png_data) - self.assertEqual(image.mime_type, 'image/png') self.assertExtendedImageAttributes(image, desc='album cover', type=Image.TYPES.front) - image = mediafile.images[1] + image = next(i for i in mediafile.images + if i.mime_type == 'image/jpeg') self.assertEqual(image.data, self.jpg_data) - self.assertEqual(image.mime_type, 'image/jpeg') self.assertExtendedImageAttributes(image, desc='the artist', type=Image.TYPES.artist) def test_set_image_structure(self): mediafile = self._mediafile_fixture('empty') image = Image(data=self.png_data, desc='album cover', - type=Image.TYPES.front) + type=Image.TYPES.front) mediafile.images = [image] mediafile.save() @@ -124,12 +124,8 @@ class ImageStructureTestMixin(ArtTestMixin): mediafile = MediaFile(mediafile.path) self.assertEqual(len(mediafile.images), 3) - # WMA does not preserve the order, so we have to work around this - try: - image = filter(lambda i: i.desc == 'the composer', - mediafile.images)[0] - except IndexError: - image = None + image = next( + (i for i in mediafile.images if i.desc == 'the composer'), None) self.assertExtendedImageAttributes(image, desc='the composer', type=Image.TYPES.composer)