Exemplo n.º 1
0
    def test_accidental_overwrite_throws(self):
        ml = MediaLibrary()
        s = song(name="test")

        ml.add_song(s)
        self.assertRaises(media_library.AlreadyExistsException,
                          lambda: ml.add_song(song(name="test"), expect_overwrite=False))
Exemplo n.º 2
0
 def test_get_playlist(self):
     ml = MediaLibrary()
     s = song()
     ml.create_playlist("test")
     ml.add_song(s)
     ml.add_song_to_playlist(s.alias, "test")
     self.assertListEqual(ml.get_playlist("test"), [s.alias])
Exemplo n.º 3
0
 def test_overwrite_works_when_expected(self):
     ml = MediaLibrary()
     s1 = song(name="test")
     s2 = song(name="test")
     ml.add_song(s1)
     ml.add_song(s2, expect_overwrite=True)
     self.assertDictEqual(ml.song_map, {"test": s2})
Exemplo n.º 4
0
 def test_to_from(self):
     ml = MediaLibrary()
     s1 = song()
     ml.add_song(s1)
     ml.create_playlist("test")
     ml.add_song_to_playlist(s1.alias, "test")
     self.assertEqual(MediaLibrary.from_primitive(ml.to_primitive()), ml)
Exemplo n.º 5
0
    def test_add_song(self):
        ml = MediaLibrary()
        s = song()

        ml.create_playlist("something")
        ml.add_song(s)
        ml.add_song_to_playlist(song_alias=s.alias, playlist_name="something")

        self.assertDictEqual(ml.playlists, {"something": [s.alias]})
Exemplo n.º 6
0
    def test_overwrite_erases_playlist(self):
        ml = MediaLibrary()
        s = song()
        ml.add_song(s)
        ml.create_playlist("test")
        ml.add_song_to_playlist(s.alias, "test")
        ml.create_playlist("test", expect_overwrite=True)

        self.assertListEqual(ml.get_playlist("test"), [])
Exemplo n.º 7
0
    def test_adding_multiple_songs(self):
        ml = MediaLibrary()
        s1 = song()
        s2 = song()

        ml.add_song(s1)
        ml.add_song(s2)

        self.assertDictEqual(ml.song_map, {s1.alias: s1, s2.alias: s2})
Exemplo n.º 8
0
    def test_cant_add_song_directly(self):
        """Make sure users can't change playlists by getting them."""
        ml = MediaLibrary()
        s = song()
        ml.create_playlist("test")
        ml.add_song(s)

        self.assertRaisesRegex(media_library.IllegalArgument, ".*Song{.*Song",
                               lambda: ml.add_song_to_playlist(s, "test"))
Exemplo n.º 9
0
    def test_list_songs_with_songs_works(self):
        ml = MediaLibrary()
        s1 = song()
        s2 = song()
        s3 = song()
        ml.add_song(s1)
        ml.add_song(s2)
        ml.add_song(s3)

        self.assertListEqual(ml.list_songs(), [s1, s2, s3])
Exemplo n.º 10
0
 def test_v1_parse(self):
     ml = MediaLibrary()
     s1 = song()
     ml.add_song(s1)
     ml.create_playlist("test")
     ml.add_song_to_playlist(s1.alias, "test")
     self.assertEqual(MediaLibrary.parse_v1({
         media_library.VERSION_FIELD: 1.0,
         MediaLibrary.SONGS_FIELD: [s1.to_primitive()],
         MediaLibrary.PLAYLIST_FIELD: {"test": [s1.alias]},
     }), ml)
Exemplo n.º 11
0
    def test_add_multiple_songs(self):
        ml = MediaLibrary()
        s1 = song()
        s2 = song()

        ml.create_playlist("test")
        ml.add_song(s1)
        ml.add_song(s2)
        ml.add_song_to_playlist(song_alias=s1.alias, playlist_name="test")
        ml.add_song_to_playlist(song_alias=s2.alias, playlist_name="test")

        self.assertDictEqual(ml.playlists, {"test": [s1.alias, s2.alias]})
Exemplo n.º 12
0
 def test_filled_library_to_primitive(self):
     ml = MediaLibrary()
     s1 = song()
     ml.add_song(s1)
     ml.create_playlist("test")
     ml.add_song_to_playlist(s1.alias, "test")
     self.assertEqual(
         ml.to_primitive(), {
             media_library.VERSION_FIELD: MediaLibrary.VERSION,
             MediaLibrary.SONGS_FIELD: [s1.to_primitive()],
             MediaLibrary.PLAYLIST_FIELD: {"test": [s1.alias]},
         }
     )
Exemplo n.º 13
0
    def test_get_playlist_write_protected(self):
        """Make sure users can't change playlists by getting them."""
        ml = MediaLibrary()
        s1 = song()
        s2 = song()
        ml.create_playlist("test")
        ml.add_song(s1)
        ml.add_song(s2)

        ml.add_song_to_playlist(s1.alias, "test")
        ml.get_playlist("test").append(s2.alias)

        self.assertListEqual(ml.get_playlist("test"), [s1.alias])
Exemplo n.º 14
0
    def test_multiple_playlists(self):
        ml = MediaLibrary()
        s1 = song()
        s2 = song()

        ml.add_song(s1)
        ml.add_song(s2)
        ml.create_playlist("test-1")
        ml.create_playlist("test-2")

        ml.add_song_to_playlist(s1.alias, "test-1")
        ml.add_song_to_playlist(s2.alias, "test-2")

        self.assertDictEqual(ml.playlists, {"test-1": [s1.alias], "test-2": [s2.alias]})
Exemplo n.º 15
0
 def test_adding_non_song_throws(self):
     ml = MediaLibrary()
     self.assertRaisesRegex(media_library.IllegalArgument, ".*'alias'.*'str'", lambda: ml.add_song("alias"))
Exemplo n.º 16
0
    def test_checks_uri(self):
        ml = MediaLibrary()

        self.assertRaises(media_library.NotFoundException,
                          lambda: ml.add_song(song(uri="C:\\something\\ invalid.mp3")))
Exemplo n.º 17
0
 def test_add_song(self):
     ml = MediaLibrary()
     s = song()
     ml.add_song(s)
     self.assertDictEqual(ml.song_map, {s.alias: s})
Exemplo n.º 18
0
 def test_song_missing(self):
     ml = MediaLibrary()
     s1 = song()
     ml.add_song(s1)
     ml.create_playlist("test")
     self.assertRaises(media_library.NotFoundException, lambda: ml.add_song_to_playlist("garbage", "test"))