diff --git a/mopidy/frontends/mpd/translator.py b/mopidy/frontends/mpd/translator.py index 5d446be8..1e2f061a 100644 --- a/mopidy/frontends/mpd/translator.py +++ b/mopidy/frontends/mpd/translator.py @@ -40,7 +40,7 @@ def track_to_mpd_format(track, position=None, cpid=None, key=False, mtime=False) result.append(('Pos', position)) result.append(('Id', cpid)) if key and track.uri: - result.insert(0, ('key', os.path.basename(track.uri))) + result.insert(0, ('key', os.path.basename(uri_to_path(track.uri)))) if mtime and track.uri: mtime = stat(uri_to_path(track.uri)).st_mtime result.append(('mtime', int(mtime))) diff --git a/tests/frontends/mpd/serializer_test.py b/tests/frontends/mpd/serializer_test.py index 81ea4cae..6a993c2a 100644 --- a/tests/frontends/mpd/serializer_test.py +++ b/tests/frontends/mpd/serializer_test.py @@ -53,6 +53,11 @@ class TrackMpdFormatTest(unittest.TestCase): result = translator.track_to_mpd_format(track, key=True) self.assert_(('key', 'file.mp3') in result) + def test_track_to_mpd_format_with_key_not_uri_encoded(self): + track = Track(uri='file:///dir/subdir/file%20test.mp3') + result = translator.track_to_mpd_format(track, key=True) + self.assert_(('key', 'file test.mp3') in result) + def test_track_to_mpd_format_with_mtime(self): uri = translator.path_to_uri(data_folder('blank.mp3')) result = translator.track_to_mpd_format(Track(uri=uri), mtime=True)