X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=tests%2Ftest_meta.py;h=b8a36b5717c1d40da7c8bf0ec18abceb7d980c94;hb=d349434f645ebed2284c3ca4fed90f4776568686;hp=a615a18e84279034f7dc574fc61502c78af9056a;hpb=031f1da47546ebf12f6e74467fcf4824ea4a26a3;p=mpd-sima.git diff --git a/tests/test_meta.py b/tests/test_meta.py index a615a18..b8a36b5 100644 --- a/tests/test_meta.py +++ b/tests/test_meta.py @@ -2,7 +2,7 @@ import unittest -from sima.lib.meta import Meta, Artist, MetaContainer, is_uuid4 +from sima.lib.meta import Meta, Artist, Album, MetaContainer, is_uuid4 from sima.lib.meta import MetaException, SEPARATOR VALID = '110e8100-e29b-41d1-a716-116655250000' @@ -13,7 +13,6 @@ class TestMetaObject(unittest.TestCase): wrong = VALID +'a' self.assertFalse(is_uuid4(wrong)) # test UUID4 format validation - self.assertFalse(is_uuid4(VALID.replace('4', '3'))) self.assertFalse(is_uuid4(VALID.replace('a', 'z'))) def test_init(self): @@ -57,6 +56,15 @@ class TestMetaObject(unittest.TestCase): # test equality Obj.__name with OgjBis.__aliases self.assertTrue(art0 == Meta(name='A Silver Mt. Zion')) + art1 = Meta(name='Silver Mt. Zion') + art1.add_alias(art0) + self.assertIn('A Silver Mt. Zion', art1.aliases) + + art3 = Meta(name='foo') + art3.add_alias('Silver Mt. Zion') + art1.add_alias(art3) + self.assertNotIn('Silver Mt. Zion', art1.aliases) + def test_union(self): art00 = Meta(name='Aphex Twin', mbid='f22942a1-6f70-4f48-866e-238cb2308fbd') @@ -102,28 +110,51 @@ class TestMetaObject(unittest.TestCase): art10._Meta__mbid = None self.assertTrue(art01 == art10, 'wrong: %r != %r' % (art00, art01)) + def test_mpd_serialization(self): + """Controls serialization of names""" + name = "Heaven's Door" + heavens_door = Meta(name=name) + target = r"Heaven\'s Door" + self.assertEqual(heavens_door.name_sz, target) + self.assertEqual(heavens_door.name, name) + self.assertEqual(heavens_door.names_sz, {target}) + heavens_door.add_alias(name+" LP") + self.assertEqual(heavens_door.aliases_sz, {target+" LP"}) + # Controls inheritance + heavens_door = Album(name=name) + self.assertEqual(heavens_door.name_sz, target) + heavens_door = Artist(name=name) + self.assertEqual(heavens_door.name_sz, target) + # Same with double quote + name = 'Bonnie "Prince" Billy' + bonnie = Meta(name=name) + target = r"Bonnie \"Prince\" Billy" + self.assertEqual(bonnie.name_sz, target) + self.assertEqual(bonnie.name, name) + + class TestArtistObject(unittest.TestCase): def test_init(self): - artist = {'artist': SEPARATOR.join(['Original Name', 'Featuring Nane', 'Feature…']), + artist = {'artist': + SEPARATOR.join(['Original Name', 'Featuring Nane', 'Feature…']), 'albumartist': 'Name', - 'musicbrainz_artistid': VALID, - 'musicbrainz_albumartistid': VALID.replace('11', '22'), + 'musicbrainz_artistid': + SEPARATOR.join([VALID, VALID.replace('0000', '1312')]), } art = Artist(**artist) - self.assertTrue(art.name == 'Name') - self.assertTrue(art.mbid == VALID.replace('11', '22')) - artist.pop('musicbrainz_albumartistid') - art = Artist(**artist) - self.assertTrue(art.mbid == VALID) + self.assertEqual(art.name, 'Original Name') + self.assertEqual(art.mbid, VALID) + self.assertEqual(art.albumartist, artist['albumartist']) artist.pop('albumartist') art = Artist(**artist) - self.assertTrue(art.name == 'Original Name', art.name) + self.assertEqual(art.name, 'Original Name') + self.assertEqual(art.albumartist, 'Original Name') def test_empty_name(self): for args in [ - {'mbid':VALID}, + {'mbid': VALID}, {'name': None}, {}, ]: