From ab97f780608e09f671617c8d628d12e1edeecc15 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Thu, 28 Oct 2010 01:12:20 +0200 Subject: [PATCH] Test all optional translator values --- mopidy/scanner.py | 33 ++++++++++++++++++++------------- tests/scanner_test.py | 33 ++++++++++++++++++++++++++++----- 2 files changed, 48 insertions(+), 18 deletions(-) diff --git a/mopidy/scanner.py b/mopidy/scanner.py index 1f990d79..2222d3a0 100644 --- a/mopidy/scanner.py +++ b/mopidy/scanner.py @@ -15,26 +15,33 @@ from mopidy.models import Track, Artist, Album def translator(data): album_kwargs = {} - album_kwargs['name'] = data['album'] - album_kwargs['num_tracks'] = data['track-count'] - artist_kwargs = {} - artist_kwargs['name'] =data['artist'] - - date = data['date'] - date = datetime.date(date.year, date.month, date.day) - track_kwargs = {} - track_kwargs['uri'] = data['uri'] - track_kwargs['name'] = data['title'] - track_kwargs['album'] = Album(**album_kwargs) - track_kwargs['artists'] = [Artist(**artist_kwargs)] - track_kwargs['date'] = date + + if 'album' in data: + album_kwargs['name'] = data['album'] + + if 'track-count' in data: + album_kwargs['num_tracks'] = data['track-count'] + + if 'artist' in data: + artist_kwargs['name'] =data['artist'] + + if 'date' in data: + date = data['date'] + date = datetime.date(date.year, date.month, date.day) + track_kwargs['date'] = date + + if 'title' in data: + track_kwargs['name'] = data['title'] if 'track-number' in data: track_kwargs['track_no'] = data['track-number'] + track_kwargs['uri'] = data['uri'] track_kwargs['length'] = data['duration'] + track_kwargs['album'] = Album(**album_kwargs) + track_kwargs['artists'] = [Artist(**artist_kwargs)] return Track(**track_kwargs) diff --git a/tests/scanner_test.py b/tests/scanner_test.py index 104235a6..b33ed99a 100644 --- a/tests/scanner_test.py +++ b/tests/scanner_test.py @@ -44,10 +44,8 @@ class TranslatorTest(unittest.TestCase): } def build_track(self): - if self.album: - self.track['album'] = Album(**self.album) - if self.artist: - self.track['artists'] = [Artist(**self.artist)] + self.track['album'] = Album(**self.album) + self.track['artists'] = [Artist(**self.artist)] return Track(**self.track) def check(self): @@ -59,8 +57,33 @@ class TranslatorTest(unittest.TestCase): self.check() def test_missing_track_number(self): - del self.track['track_no'] del self.data['track-number'] + del self.track['track_no'] + self.check() + + def test_missing_track_count(self): + del self.data['track-count'] + del self.album['num_tracks'] + self.check() + + def test_missing_track_name(self): + del self.data['title'] + del self.track['name'] + self.check() + + def test_missing_album_name(self): + del self.data['album'] + del self.album['name'] + self.check() + + def test_missing_artist_name(self): + del self.data['artist'] + del self.artist['name'] + self.check() + + def test_missing_date(self): + del self.data['date'] + del self.track['date'] self.check() class ScannerTest(unittest.TestCase):