]> kaliko git repositories - mpd-sima.git/blob - tests/test_track.py
Changed tracks equality test
[mpd-sima.git] / tests / test_track.py
1 # -*- coding: utf-8 -*-
2
3 import unittest
4
5 from sima.lib.track import Track
6
7 DEVOLT = {
8   'album': 'Grey',
9   'albumartist': ['Devolt', 'Devolt Band'],
10   'albumartistsort': 'Devolt',
11   'artist': 'Devolt',
12   'date': '2011-12-01',
13   'disc': '1/1',
14   'file': 'music/Devolt/2011-Grey/03-Devolt - Crazy.mp3',
15   'last-modified': '2012-04-02T20:48:59Z',
16   'musicbrainz_albumartistid': 'd8e7e3e2-49ab-4f7c-b148-fc946d521f99',
17   'musicbrainz_albumid': 'ea2ef2cf-59e1-443a-817e-9066e3e0be4b',
18   'musicbrainz_artistid': 'd8e7e3e2-49ab-4f7c-b148-fc946d521f99',
19   'musicbrainz_trackid': 'fabf8fc9-2ae5-49c9-8214-a839c958d872',
20   'time': '220',
21   'title': 'Crazy',
22   'track': '3/6'}
23
24
25 class TestTrackObject(unittest.TestCase):
26
27     def test_tagcollapse(self):
28         trk = Track(**DEVOLT)
29         self.assertTrue(trk.collapsed_tags, 'Should have collapsed a tag')
30         self.assertFalse(isinstance(trk.albumartist, list), 'Failed to collapse albumartist tag')
31         self.assertTrue(trk.Artist.name in DEVOLT.get('albumartist'),
32                         'Failed to split multiple tag?')
33
34     def test_boolean_type(self):
35         self.assertFalse(bool(Track()))
36         for trk in [{}, {'artist': 'Devolt'}, {'artist': 'Devolt', 'file':''}]:
37             self.assertFalse(bool(Track(**trk)))
38
39     def test_albumartist(self):
40         trk = Track(albumartist='album_artist', artist='track_artist')
41         self.assertEqual(trk.Artist.name, 'album_artist')
42         trk = Track(artist='track_artist')
43         self.assertEqual(trk.Artist.name, 'track_artist')
44
45 class TestTrackObjectEquality(unittest.TestCase):
46
47     def test_identity(self):
48         trk0 = Track(file='/foo/bar',
49                      musicbrainz_artistid='d8e7e3e2-49ab-4f7c-b148-fc946d521f99',
50                      title='Crazy')
51         trk1 = Track(file='/foo/bar/baz',
52                      musicbrainz_artistid='d8e7e3e2-49ab-4f7c-b148-fc946d521f99',
53                      title='Crazy')
54         self.assertTrue(trk1 == trk0, 'different files same artist/title should be equal')
55         trk0 = Track(file='/foo/bar',
56                      musicbrainz_artistid='d8e7e3e2-49ab-4f7c-b148-fc946d521f88',
57                      title='Crazy')
58         trk1 = Track(file='/foo/bar/baz',
59                      musicbrainz_artistid='d8e7e3e2-49ab-4f7c-b148-fc946d521f99',
60                      title='Crazy')
61         self.assertTrue(trk1 != trk0, 'different files same title different artist should not be equal')
62
63 # vim: ai ts=4 sw=4 sts=4 expandtab