Remove uri_to_mpd_relative_path

This commit is contained in:
Thomas Adamcik 2010-10-30 21:26:08 +02:00
parent d67bfb9aee
commit b9976c4cda
2 changed files with 13 additions and 51 deletions

View File

@ -23,7 +23,7 @@ def track_to_mpd_format(track, position=None, cpid=None, key=False, mtime=False)
:rtype: list of two-tuples :rtype: list of two-tuples
""" """
result = [ result = [
('file', uri_to_mpd_relative_path(track.uri) or ''), ('file', track.uri or ''),
('Time', track.length and (track.length // 1000) or 0), ('Time', track.length and (track.length // 1000) or 0),
('Artist', artists_to_mpd_format(track.artists)), ('Artist', artists_to_mpd_format(track.artists)),
('Title', track.name or ''), ('Title', track.name or ''),
@ -91,19 +91,6 @@ def playlist_to_mpd_format(playlist, *args, **kwargs):
""" """
return tracks_to_mpd_format(playlist.tracks, *args, **kwargs) return tracks_to_mpd_format(playlist.tracks, *args, **kwargs)
def uri_to_mpd_relative_path(uri):
"""
Strip uri and LOCAL_MUSIC_FOLDER part of uri.
:param uri: the uri
:type uri: string
:rtype: string
"""
if uri is None:
return ''
path = path_to_uri(settings.LOCAL_MUSIC_FOLDER)
return re.sub('^' + re.escape(path), '', uri)
def tracks_to_tag_cache_format(tracks): def tracks_to_tag_cache_format(tracks):
""" """
Format list of tracks for output to MPD tag cache Format list of tracks for output to MPD tag cache
@ -138,7 +125,7 @@ def _add_to_tag_cache(result, folders, files):
def tracks_to_directory_tree(tracks): def tracks_to_directory_tree(tracks):
directories = ({}, []) directories = ({}, [])
for track in tracks: for track in tracks:
uri = uri_to_mpd_relative_path(track.uri) uri = track.uri
path = '' path = ''
current = directories current = directories
for part in split_path(os.path.dirname(uri_to_path(uri))): for part in split_path(os.path.dirname(uri_to_path(uri))):

View File

@ -57,12 +57,6 @@ class TrackMpdFormatTest(unittest.TestCase):
result = translator.track_to_mpd_format(Track(uri=uri), mtime=True) result = translator.track_to_mpd_format(Track(uri=uri), mtime=True)
self.assert_(('mtime', 1234567) in result) self.assert_(('mtime', 1234567) in result)
def test_track_to_mpd_format_track_uses_uri_to_mpd_relative_path(self):
track = Track(uri='file:///dir/subdir/song.mp3')
path = dict(translator.track_to_mpd_format(track))['file']
correct_path = translator.uri_to_mpd_relative_path(track.uri)
self.assertEqual(path, correct_path)
def test_track_to_mpd_format_for_nonempty_track(self): def test_track_to_mpd_format_for_nonempty_track(self):
track = Track( track = Track(
uri=u'a uri', uri=u'a uri',
@ -108,26 +102,7 @@ class PlaylistMpdFormatTest(unittest.TestCase):
self.assertEqual(dict(result[0])['Track'], 2) self.assertEqual(dict(result[0])['Track'], 2)
class UriToMpdRelativePathTest(unittest.TestCase):
def setUp(self):
settings.LOCAL_MUSIC_FOLDER = '/dir/subdir'
def tearDown(self):
settings.runtime.clear()
def test_none_file_returns_empty_string(self):
uri = 'file:///dir/subdir/music/album/song.mp3'
result = translator.uri_to_mpd_relative_path(None)
self.assertEqual('', result)
def test_file_gets_stripped(self):
uri = 'file:///dir/subdir/music/album/song.mp3'
result = translator.uri_to_mpd_relative_path(uri)
self.assertEqual('/music/album/song.mp3', result)
class TracksToTagCacheFormatTest(unittest.TestCase): class TracksToTagCacheFormatTest(unittest.TestCase):
def setUp(self): def setUp(self):
settings.LOCAL_MUSIC_FOLDER = '/dir/subdir' settings.LOCAL_MUSIC_FOLDER = '/dir/subdir'
mtime.set_fake_time(1234567) mtime.set_fake_time(1234567)
@ -300,7 +275,7 @@ class TracksToTagCacheFormatTest(unittest.TestCase):
class TracksToDirectoryTreeTest(unittest.TestCase): class TracksToDirectoryTreeTest(unittest.TestCase):
def setUp(self): def setUp(self):
settings.LOCAL_MUSIC_FOLDER = '/' settings.LOCAL_MUSIC_FOLDER = '/root/'
def tearDown(self): def tearDown(self):
settings.runtime.clear() settings.runtime.clear()
@ -311,32 +286,32 @@ class TracksToDirectoryTreeTest(unittest.TestCase):
def test_top_level_files(self): def test_top_level_files(self):
tracks = [ tracks = [
Track(uri='file:///file1.mp3'), Track(uri='file:///root/file1.mp3'),
Track(uri='file:///file2.mp3'), Track(uri='file:///root/file2.mp3'),
Track(uri='file:///file3.mp3'), Track(uri='file:///root/file3.mp3'),
] ]
tree = translator.tracks_to_directory_tree(tracks) tree = translator.tracks_to_directory_tree(tracks)
self.assertEqual(tree, ({}, tracks)) self.assertEqual(tree, ({}, tracks))
def test_single_file_in_subdir(self): def test_single_file_in_subdir(self):
tracks = [Track(uri='file:///dir/file1.mp3')] tracks = [Track(uri='file:///root/dir/file1.mp3')]
tree = translator.tracks_to_directory_tree(tracks) tree = translator.tracks_to_directory_tree(tracks)
expected = ({'dir': ({}, tracks)}, []) expected = ({'dir': ({}, tracks)}, [])
self.assertEqual(tree, expected) self.assertEqual(tree, expected)
def test_single_file_in_sub_subdir(self): def test_single_file_in_sub_subdir(self):
tracks = [Track(uri='file:///dir1/dir2/file1.mp3')] tracks = [Track(uri='file:///root/dir1/dir2/file1.mp3')]
tree = translator.tracks_to_directory_tree(tracks) tree = translator.tracks_to_directory_tree(tracks)
expected = ({'dir1': ({'dir1/dir2': ({}, tracks)}, [])}, []) expected = ({'dir1': ({'dir1/dir2': ({}, tracks)}, [])}, [])
self.assertEqual(tree, expected) self.assertEqual(tree, expected)
def test_complex_file_structure(self): def test_complex_file_structure(self):
tracks = [ tracks = [
Track(uri='file:///file1.mp3'), Track(uri='file:///root/file1.mp3'),
Track(uri='file:///dir1/file2.mp3'), Track(uri='file:///root/dir1/file2.mp3'),
Track(uri='file:///dir1/file3.mp3'), Track(uri='file:///root/dir1/file3.mp3'),
Track(uri='file:///dir2/file4.mp3'), Track(uri='file:///root/dir2/file4.mp3'),
Track(uri='file:///dir2/sub/file5.mp3'), Track(uri='file:///root/dir2/sub/file5.mp3'),
] ]
tree = translator.tracks_to_directory_tree(tracks) tree = translator.tracks_to_directory_tree(tracks)
expected = ( expected = (