예제 #1
0
class TestPLaylist(unittest.TestCase):
    def setUp(self):
        self.playlist = Playlist("Dolna Chalga", False, False)
        self.song = Song("Bout Me", "Wiz Khalifa", "Cabin Fever", "3:30")
        self.song1 = Song("Bout Meee", "Wwwwiz Khalifa", "Cabin Ffever", "4:30")
        self.song2 = Song("Bouttt Me", "Wiz Khaliiifa", "Cabinnn Fever", "5:30")

    def test_playlist_dasherize_name(self):
        self.assertEqual(self.playlist.dasherize_name(), "Dolna-Chalga")

    def test_playlist_add_one_song(self):
        self.playlist.add_songs(self.song)
        self.assertIn(self.song, self.playlist.list)

    def test_playlist_add_list_of_songs(self):
        self.playlist.add_songs([self.song, self.song1, self.song2])
        self.assertIn(self.song1, self.playlist.list)

    def test_playlist_add_non_song(self):
        with self.assertRaises(TypeError):
            self.playlist.add_songs("should fail")

    def test_playlist_remove_song(self):
        self.playlist.add_songs([self.song, self.song1, self.song2])
        self.playlist.remove_song(self.song1)
        self.assertNotIn(self.song1, self.playlist.list)

    def test_playlist_remove_unexisting_song(self):
        self.playlist.add_songs([self.song, self.song1])
        self.assertEqual(self.playlist.remove_song(self.song2), "There is no such song in the playlist.")

    def test_playlist_total_length(self):
        self.playlist.add_songs([self.song, self.song1, self.song2])
        self.assertEqual(self.playlist.total_length(), "0:13:30")

    def test_playlist_artists(self):
        #It was easier to be tested in REPL. Everything's ok.
        pass