File: test_track.py

package info (click to toggle)
mpd-sima 0.18.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 716 kB
  • sloc: python: 4,364; sh: 222; makefile: 166
file content (65 lines) | stat: -rw-r--r-- 2,526 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# -*- coding: utf-8 -*-

import unittest

from sima.lib.track import Track

DEVOLT = {
  'album': 'Grey',
  'albumartist': ['Devolt', 'Devolt Band'],
  'albumartistsort': 'Devolt',
  'artist': 'Devolt',
  'date': '2011-12-01',
  'disc': '1/1',
  'file': 'music/Devolt/2011-Grey/03-Devolt - Crazy.mp3',
  'last-modified': '2012-04-02T20:48:59Z',
  'musicbrainz_albumartistid': 'd8e7e3e2-49ab-4f7c-b148-fc946d521f99',
  'musicbrainz_albumid': 'ea2ef2cf-59e1-443a-817e-9066e3e0be4b',
  'musicbrainz_artistid': 'd8e7e3e2-49ab-4f7c-b148-fc946d521f99',
  'musicbrainz_trackid': 'fabf8fc9-2ae5-49c9-8214-a839c958d872',
  'time': '220',
  'duration': '220.000',
  'title': 'Crazy',
  'track': '3/6'}


class TestTrackObject(unittest.TestCase):

    def test_tagcollapse(self):
        trk = Track(**DEVOLT)
        self.assertTrue(trk.collapsed_tags, 'Should have collapsed a tag')
        self.assertFalse(isinstance(trk.albumartist, list), 'Failed to collapse albumartist tag')
        self.assertTrue(trk.Artist.name in DEVOLT.get('albumartist'),
                        'Failed to split multiple tag?')

    def test_boolean_type(self):
        self.assertFalse(bool(Track()))
        for trk in [{}, {'artist': 'Devolt'}, {'artist': 'Devolt', 'file':''}]:
            self.assertFalse(bool(Track(**trk)))

    def test_albumartist(self):
        trk = Track(albumartist='album_artist', artist='track_artist')
        self.assertEqual(trk.Artist.name, 'track_artist')
        trk = Track(artist='track_artist')
        self.assertEqual(trk.Artist.name, 'track_artist')
        self.assertEqual(trk.Artist.albumartist, 'track_artist')

    def test_genres(self):
        trk = Track(**{'artist': 'Devolt', 'genre': ['Rock, Stoner ', ' Punk; Heavy', 'doom']})
        self.assertEqual(trk.genres, ['Rock', 'Stoner', 'Punk', 'Heavy', 'doom'])
        trk = Track(**{'artist': 'Devolt', 'genre': [' Rock ', ' Stoner ', 'Punk ']})
        self.assertEqual(trk.genres, ['Rock', 'Stoner', 'Punk'])
        trk = Track(**{'artist': 'Devolt', 'genre': 'Punk '})
        self.assertEqual(trk.genres, ['Punk'])

    def test_artist_object(self):
        trk = Track(**DEVOLT)
        self.assertEqual(trk.Artist.name, DEVOLT['artist'])
        self.assertEqual(trk.Artist.mbid, DEVOLT['musicbrainz_artistid'])

    def test_album_object(self):
        trk = Track(**DEVOLT)
        self.assertEqual(trk.Album.name, DEVOLT['album'])
        self.assertEqual(trk.Album.mbid, DEVOLT['musicbrainz_albumid'])

# vim: ai ts=4 sw=4 sts=4 expandtab