mopidy-scan fails if track has no artist name
stack trace:
Traceback (most recent call last):
File ./scan, line 27, in <module>
for a in tracks_to_tag_cache_format(tracks):
File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 138, in tracks_to_tag_cache_format
_add_to_tag_cache(result, *tracks_to_directory_tree(tracks))
File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 151, in _add_to_tag_cache
_add_to_tag_cache(result, *entry)
File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 156, in _add_to_tag_cache
track_result = dict(track_to_mpd_format(track))
File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 28, in track_to_mpd_format
('Artist', artists_to_mpd_format(track.artists)),
File /home/martins/source/mopidy/mopidy/frontends/mpd/translator.py, line 88, in artists_to_mpd_format
return u', '.join([a.name for a in artists if a])
TypeError: sequence item 0: expected string or Unicode, NoneType found
This commit is contained in:
parent
f33c65ddfe
commit
159831c6e7
@ -85,7 +85,7 @@ def artists_to_mpd_format(artists):
|
||||
:rtype: string
|
||||
"""
|
||||
artists.sort(key=lambda a: a.name)
|
||||
return u', '.join([a.name for a in artists])
|
||||
return u', '.join([a.name for a in artists if a.name])
|
||||
|
||||
def tracks_to_mpd_format(tracks, start=0, end=None, cpids=None):
|
||||
"""
|
||||
|
||||
@ -95,6 +95,11 @@ class TrackMpdFormatTest(unittest.TestCase):
|
||||
translated = translator.artists_to_mpd_format(artists)
|
||||
self.assertEqual(translated, u'ABBA, Beatles')
|
||||
|
||||
def test_artists_to_mpd_format_artist_with_no_name(self):
|
||||
artists = [Artist(name=None)]
|
||||
translated = translator.artists_to_mpd_format(artists)
|
||||
self.assertEqual(translated, u'')
|
||||
|
||||
|
||||
class PlaylistMpdFormatTest(unittest.TestCase):
|
||||
def test_mpd_format(self):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user