コード例 #1
0
ファイル: test_music.py プロジェクト: tiwilliam/entertainer
class TestMusicLibrary(TestMusic):
    '''Tests MusicLibrary'''

    def setUp(self):
        TestMusic.setUp(self)
        self.musiclibrary = MusicLibrary()

    def test_music_library_constructor(self):
        '''Test that the music library contructor works.'''
        self.assertTrue(isinstance(self.musiclibrary, MusicLibrary))

    def testGetAllArtists(self):
        """testGetAllArtists - Ensures that all artists are returned from
        the music library"""
        result = self.musiclibrary.get_all_artists()
        self.assertEqual(result, ['artist0'])

    def testGetTracksByArtist(self):
        """testGetTracksByArtist - Ensure tracks by a certain artist are
        returned"""
        result = self.musiclibrary.get_tracks_by_artist('artist0')
        self.assertEqual(len(result), 8)
        for i in result:
            self.assertEqual(i.artist, 'artist0')

    def testGetTracksByUnknownArtist(self):
        """testGetTracksByUnknownArtist - Ensure proper handling of an missing
        artist in the cache"""
        self.assertEquals(
            len(self.musiclibrary.get_tracks_by_artist('foo')), 0)

    def testGetAllAlbums(self):
        """testGetAllAlbums - Ensures all albums are returned"""
        result = self.musiclibrary.get_all_albums()
        for i in result:
            self.assertTrue(isinstance(i, Album))
        self.assertEqual(len(result), 2)

    def testGetAlbumsByArtist(self):
        """testGetAlbumsByArtist - Ensures correct albums by an artist is
        returned"""
        result = self.musiclibrary.get_albums_by_artist('artist0')
        self.assertEqual(len(result), 2)
        for i in result:
            self.assertEqual(i.artist, 'artist0')

    def testGetAlbumsByUnknownArtist(self):
        """testGetAlbumsByUnknownArtist - Ensures proper handling of an
        artist not in the cache"""
        self.assertEquals(
            len(self.musiclibrary.get_albums_by_artist('foo')), 0)

    def testNumberOfTracks(self):
        """testNumberOfTracks - Ensures number of all tracks is returned"""
        result = self.musiclibrary.number_of_tracks()
        self.assertEqual(result, 8)

    def testNumberOfTracksByArtist(self):
        """testNumberOfTracksByArtist - Ensures number of all tracks by one
        artist is returned"""
        result = self.musiclibrary.number_of_tracks_by_artist('artist0')
        self.assertEqual(result, 8)

    def testNumberOfTracksByUnknownArtist(self):
        """testNumberOfTracksByUnknownArtist - Ensures proper handling when
        artist called is not in the cache"""
        self.assertEqual(
            self.musiclibrary.number_of_albums_by_artist('foo'), 0)

    def testNumberOfAlbumsByArtist(self):
        """testNumberOfAlbumsByArtist - Ensures number of all albums by one
        artist is returned"""
        result = self.musiclibrary.number_of_albums_by_artist('artist0')
        self.assertEqual(result, 2)

    def testNumberOfAlbumsByUnknownArtist(self):
        """testNumberOfAlbumsByUnknownArtist - Ensures proper handling when
        artist called is not in the cache"""
        self.assertEqual(
            self.musiclibrary.number_of_albums_by_artist('foo'), 0)

    def testSaveLyrics(self):
        """testSaveLyrics - Ensures lyrics for a track are saved in the
        database"""
        # Only need a filename that matches something in the database, the rest
        # of the track is for construction purposes only
        track = Track('/filename/000', '', 0, '', '', 0, 1, '', None)
        self.musiclibrary.save_lyrics(track, 'some lyrics here')
        self.assertEqual(track.lyrics, 'some lyrics here')