From cf05777e9fae826c2470967f7878c70274c95f93 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Mon, 26 Apr 2010 23:24:12 +0200 Subject: [PATCH] Fix renaming of stored playlists on disk --- mopidy/backends/gstreamer.py | 6 ++++++ tests/backends/gstreamer_test.py | 14 +++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/mopidy/backends/gstreamer.py b/mopidy/backends/gstreamer.py index bab8df1e..594f55be 100644 --- a/mopidy/backends/gstreamer.py +++ b/mopidy/backends/gstreamer.py @@ -9,6 +9,7 @@ pygst.require('0.10') import gst import logging import os +import shutil import threading from mopidy.backends import * @@ -131,10 +132,15 @@ class GStreamerStoredPlaylistsController(BaseStoredPlaylistsController): if playlist not in self._playlists: return + src = os.path.join(self._folder, playlist.name + '.m3u') + dst = os.path.join(self._folder, name + '.m3u') + renamed = playlist.with_(name=name) index = self._playlists.index(playlist) self._playlists[index] = renamed + shutil.move(src, dst) + def save(self, playlist): file = os.path.join(self._folder, playlist.name + '.m3u') open(file, 'w').close() diff --git a/tests/backends/gstreamer_test.py b/tests/backends/gstreamer_test.py index acef94ec..f1f40d11 100644 --- a/tests/backends/gstreamer_test.py +++ b/tests/backends/gstreamer_test.py @@ -57,20 +57,28 @@ class GStreamerBackendStoredPlaylistsControllerTest(BaseStoredPlaylistsControlle def test_created_playlist_is_persisted(self): self.stored.create('test') - file= os.path.join(settings.PLAYLIST_FOLDER, 'test.m3u') + 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') + 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') + file = os.path.join(settings.PLAYLIST_FOLDER, 'test.m3u') self.assert_(not os.path.exists(file)) + def test_renamed_playlist_gets_moved(self): + playlist = self.stored.create('test') + self.stored.rename(playlist, 'test2') + file1 = os.path.join(settings.PLAYLIST_FOLDER, 'test.m3u') + file2 = os.path.join(settings.PLAYLIST_FOLDER, 'test2.m3u') + self.assert_(not os.path.exists(file1)) + self.assert_(os.path.exists(file2)) + if __name__ == '__main__': unittest.main()