diff --git a/mopidy/backends/gstreamer.py b/mopidy/backends/gstreamer.py index 8a954d6d..bab8df1e 100644 --- a/mopidy/backends/gstreamer.py +++ b/mopidy/backends/gstreamer.py @@ -118,8 +118,14 @@ class GStreamerStoredPlaylistsController(BaseStoredPlaylistsController): return playlist def delete(self, playlist): - if playlist in self._playlists: - self._playlists.remove(playlist) + if playlist not in self._playlists: + return + + self._playlists.remove(playlist) + file = os.path.join(self._folder, playlist.name + '.m3u') + + if os.path.exists(file): + os.remove(file) def rename(self, playlist, name): if playlist not in self._playlists: diff --git a/tests/backends/gstreamer_test.py b/tests/backends/gstreamer_test.py index f3cacd73..acef94ec 100644 --- a/tests/backends/gstreamer_test.py +++ b/tests/backends/gstreamer_test.py @@ -57,8 +57,19 @@ class GStreamerBackendStoredPlaylistsControllerTest(BaseStoredPlaylistsControlle def test_created_playlist_is_persisted(self): self.stored.create('test') - playlist = os.path.join(settings.PLAYLIST_FOLDER, 'test.m3u') - self.assert_(os.path.exists(playlist)) + file= os.path.join(settings.PLAYLIST_FOLDER, 'test.m3u') + self.assert_(os.path.exists(file)) + + def test_saved_playlist_is_persisted(self): + self.stored.save(Playlist(name='test2')) + file= os.path.join(settings.PLAYLIST_FOLDER, 'test2.m3u') + self.assert_(os.path.exists(file)) + + def test_deleted_playlist_get_removed(self): + playlist = self.stored.create('test') + self.stored.delete(playlist) + file= os.path.join(settings.PLAYLIST_FOLDER, 'test.m3u') + self.assert_(not os.path.exists(file)) if __name__ == '__main__':