X-Git-Url: https://git.kaliko.me/?a=blobdiff_plain;f=tests%2Ftest_meta.py;h=ed241cf1a04f85f9c2ee4db53d1ad148a1f3ef1d;hb=9be53ff0c7f6dfeaa62bf0964f7d3a477c10499e;hp=071e925cf9e4feda81b5a85359e305700020d717;hpb=af86754e3894222295a5b76baf4304d176c3b78d;p=mpd-sima.git diff --git a/tests/test_meta.py b/tests/test_meta.py index 071e925..ed241cf 100644 --- a/tests/test_meta.py +++ b/tests/test_meta.py @@ -2,8 +2,8 @@ import unittest -from sima.lib.meta import Meta, Artist, MetaContainer, is_uuid4 -from sima.lib.meta import WrongUUID4, MetaException +from sima.lib.meta import Meta, Artist, Album, MetaContainer, is_uuid4 +from sima.lib.meta import MetaException, SEPARATOR VALID = '110e8100-e29b-41d1-a716-116655250000' @@ -11,16 +11,16 @@ class TestMetaObject(unittest.TestCase): def test_uuid_integrity(self): wrong = VALID +'a' - self.assertRaises(WrongUUID4, is_uuid4, wrong) + self.assertFalse(is_uuid4(wrong)) # test UUID4 format validation - self.assertRaises(WrongUUID4, is_uuid4, VALID.replace('4', '3')) - self.assertRaises(WrongUUID4, is_uuid4, VALID.replace('a', 'z')) + self.assertFalse(is_uuid4(VALID.replace('4', '3'))) + self.assertFalse(is_uuid4(VALID.replace('a', 'z'))) def test_init(self): for args in [ {'mbid':VALID}, {'name': None}, - {}, + {'name': 42}, ]: with self.assertRaises(MetaException, msg='{} does not raise an except.'.format(args)): @@ -102,11 +102,27 @@ 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) + class TestArtistObject(unittest.TestCase): def test_init(self): - artist = {'artist': ', '.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'), @@ -121,6 +137,15 @@ class TestArtistObject(unittest.TestCase): art = Artist(**artist) self.assertTrue(art.name == 'Original Name', art.name) + def test_empty_name(self): + for args in [ + {'mbid':VALID}, + {'name': None}, + {}, + ]: + with self.assertRaises(MetaException, + msg='{} does not raise an except.'.format(args)): + Artist(**args) class TestMetaContainers(unittest.TestCase):