mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-21 07:04:02 +00:00
103 lines
4.2 KiB
Python
103 lines
4.2 KiB
Python
#!/usr/bin/env python
|
|
# coding: utf-8
|
|
from test.picardtestcase import (
|
|
PicardTestCase,
|
|
create_fake_png,
|
|
)
|
|
|
|
from picard.coverart.image import (
|
|
CoverArtImage,
|
|
LocalFileCoverArtImage,
|
|
)
|
|
|
|
|
|
def create_image(extra_data, types=None, support_types=False,
|
|
support_multi_types=False):
|
|
image = CoverArtImage(
|
|
data=create_fake_png(extra_data),
|
|
types=types,
|
|
)
|
|
image.support_types = support_types
|
|
image.support_multi_types = support_multi_types
|
|
return image
|
|
|
|
|
|
class CoverArtImageTest(PicardTestCase):
|
|
def test_is_front_image_no_types(self):
|
|
image = create_image(b'a')
|
|
self.assertTrue(image.is_front_image())
|
|
image.can_be_saved_to_metadata = False
|
|
self.assertFalse(image.is_front_image())
|
|
|
|
def test_is_front_image_types_supported(self):
|
|
image = create_image(b'a', types=["booklet", "front"], support_types=True)
|
|
self.assertTrue(image.is_front_image())
|
|
image.is_front = False
|
|
self.assertFalse(image.is_front_image())
|
|
image = create_image(b'a', support_types=True)
|
|
self.assertFalse(image.is_front_image())
|
|
|
|
def test_is_front_image_no_types_supported(self):
|
|
image = create_image(b'a', types=["back"], support_types=False)
|
|
self.assertTrue(image.is_front_image())
|
|
|
|
def test_maintype(self):
|
|
self.assertEqual("front", create_image(b'a').maintype)
|
|
self.assertEqual("front", create_image(b'a', support_types=True).maintype)
|
|
self.assertEqual("front", create_image(b'a', types=["back", "front"], support_types=True).maintype)
|
|
self.assertEqual("back", create_image(b'a', types=["back", "medium"], support_types=True).maintype)
|
|
self.assertEqual("front", create_image(b'a', types=["back", "medium"], support_types=False).maintype)
|
|
|
|
def test_compare_without_type(self):
|
|
image1 = create_image(b'a', types=["front"])
|
|
image2 = create_image(b'a', types=["back"])
|
|
image3 = create_image(b'a', types=["back"], support_types=True)
|
|
image4 = create_image(b'b', types=["front"])
|
|
|
|
self.assertEqual(image1, image2)
|
|
self.assertEqual(image1, image3)
|
|
self.assertNotEqual(image1, image4)
|
|
|
|
def test_compare_with_primary_type(self):
|
|
image1 = create_image(b'a', types=["front"], support_types=True)
|
|
image2 = create_image(b'a', types=["front", "booklet"], support_types=True, support_multi_types=True)
|
|
image3 = create_image(b'a', types=["back"], support_types=True)
|
|
image4 = create_image(b'b', types=["front"], support_types=True)
|
|
image5 = create_image(b'a', types=[], support_types=True)
|
|
image6 = create_image(b'a', types=[], support_types=True)
|
|
|
|
self.assertEqual(image1, image2)
|
|
self.assertNotEqual(image1, image3)
|
|
self.assertNotEqual(image1, image4)
|
|
self.assertNotEqual(image3, image5)
|
|
self.assertEqual(image5, image6)
|
|
|
|
def test_compare_with_multiple_types(self):
|
|
image1 = create_image(b'a', types=["front"], support_types=True, support_multi_types=True)
|
|
image2 = create_image(b'a', types=["front", "booklet"], support_types=True, support_multi_types=True)
|
|
image3 = create_image(b'a', types=["front", "booklet"], support_types=True, support_multi_types=True)
|
|
image4 = create_image(b'b', types=["front", "booklet"], support_types=True, support_multi_types=True)
|
|
|
|
self.assertNotEqual(image1, image2)
|
|
self.assertEqual(image2, image3)
|
|
self.assertNotEqual(image2, image4)
|
|
|
|
|
|
class LocalFileCoverArtImageTest(PicardTestCase):
|
|
def test_set_file_url(self):
|
|
path = '/some/path/image.jpeg'
|
|
image = LocalFileCoverArtImage(path)
|
|
self.assertEqual(image.url.toString(), 'file://' + path)
|
|
|
|
def test_support_types(self):
|
|
path = '/some/path/image.jpeg'
|
|
image = LocalFileCoverArtImage(path)
|
|
self.assertFalse(image.support_types)
|
|
self.assertFalse(image.support_multi_types)
|
|
image = LocalFileCoverArtImage(path, support_types=True)
|
|
self.assertTrue(image.support_types)
|
|
self.assertFalse(image.support_multi_types)
|
|
image = LocalFileCoverArtImage(path, support_multi_types=True)
|
|
self.assertFalse(image.support_types)
|
|
self.assertTrue(image.support_multi_types)
|