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')