Simplify tag cache return values

This commit is contained in:
Thomas Adamcik 2010-05-01 21:28:56 +02:00
parent 590aea4b89
commit d757d6a0ec
3 changed files with 10 additions and 27 deletions

View File

@ -188,7 +188,7 @@ class GStreamerLibraryController(BaseLibraryController):
self.refresh()
def refresh(self, uri=None):
tracks, artists, albums = parse_mpd_tag_cache(settings.TAG_CACHE,
tracks = parse_mpd_tag_cache(settings.TAG_CACHE,
settings.MUSIC_FOLDER)
for track in tracks:

View File

@ -151,15 +151,13 @@ def parse_mpd_tag_cache(tag_cache, music_dir=''):
Converts a MPD tag_cache into a lists of tracks, artists and albums.
"""
tracks = set()
artists = set()
albums = set()
try:
with open(tag_cache) as library:
contents = library.read()
except IOError, e:
logger.error('Could not open tag cache: %s', e)
return tracks, artists, albums
return tracks
current = {}
state = None
@ -177,16 +175,16 @@ def parse_mpd_tag_cache(tag_cache, music_dir=''):
key, value = line.split(': ', 1)
if key == 'key':
_convert_mpd_data(current, tracks, artists, albums, music_dir)
_convert_mpd_data(current, tracks, music_dir)
current.clear()
current[key.lower()] = value
_convert_mpd_data(current, tracks, artists, albums, music_dir)
_convert_mpd_data(current, tracks, music_dir)
return tracks, artists, albums
return tracks
def _convert_mpd_data(data, tracks, artists, albums, music_dir):
def _convert_mpd_data(data, tracks, music_dir):
if not data:
return
@ -199,14 +197,12 @@ def _convert_mpd_data(data, tracks, artists, albums, music_dir):
if 'artist' in data:
artist = Artist(name=data['artist'])
artists.add(artist)
track_kwargs['artists'] = [artist]
album_kwargs['artists'] = [artist]
if 'album' in data:
album_kwargs['name'] = data['album']
album = Album(**album_kwargs)
albums.add(album)
track_kwargs['album'] = album
if 'title' in data:

View File

@ -151,27 +151,19 @@ generate_track('subdir1/subsubdir/song9.mp3')
class MPDTagCacheToTracksTest(unittest.TestCase):
def test_emtpy_cache(self):
tracks, artists, albums = parse_mpd_tag_cache(data_folder('empty_tag_cache'),
tracks = parse_mpd_tag_cache(data_folder('empty_tag_cache'),
data_folder(''))
self.assertEqual(set(), tracks)
self.assertEqual(set(), artists)
self.assertEqual(set(), albums)
def test_simple_cache(self):
tracks, artists, albums = parse_mpd_tag_cache(data_folder('simple_tag_cache'),
tracks = parse_mpd_tag_cache(data_folder('simple_tag_cache'),
data_folder(''))
self.assertEqual(expected_tracks[0], list(tracks)[0])
self.assertEqual(set(expected_artists), artists)
self.assertEqual(set(expected_albums), albums)
def test_advanced_cache(self):
tracks, artists, albums = parse_mpd_tag_cache(data_folder('advanced_tag_cache'),
tracks = parse_mpd_tag_cache(data_folder('advanced_tag_cache'),
data_folder(''))
self.assertEqual(set(expected_tracks), tracks)
self.assertEqual(set(expected_artists), artists)
self.assertEqual(set(expected_albums), albums)
def test_unicode_cache(self):
raise SkipTest
@ -181,12 +173,7 @@ class MPDTagCacheToTracksTest(unittest.TestCase):
raise SkipTest
def test_cache_with_blank_track_info(self):
tracks, artists, albums = parse_mpd_tag_cache(data_folder('blank_tag_cache'),
tracks = parse_mpd_tag_cache(data_folder('blank_tag_cache'),
data_folder(''))
uri = path_to_uri(data_folder('song1.mp3'))
self.assertEqual(set([Track(uri=uri, length=4000)]), tracks)
self.assertEqual(set(), artists)
self.assertEqual(set(), albums)