From d02dec83647d3e03532fbf94b94d5f67a1444313 Mon Sep 17 00:00:00 2001 From: Thomas Scholtes Date: Wed, 16 Apr 2014 14:50:57 +0200 Subject: [PATCH] Test albums and singletons simultaneously --- test/helper.py | 4 +++- test/test_mbsync.py | 56 +++++++++++++++++---------------------------- 2 files changed, 24 insertions(+), 36 deletions(-) diff --git a/test/helper.py b/test/helper.py index 62801498b..2dbef8e48 100644 --- a/test/helper.py +++ b/test/helper.py @@ -329,7 +329,7 @@ ALBUM_INFO_FIELDS = ['album', 'album_id', 'artist', 'artist_id', 'data_source', 'data_url'] -def generate_track_info(track_id='track info'): +def generate_track_info(track_id='track info', values={}): """Return `TrackInfo` populated with mock data. The `track_id` field is set to the corresponding argument. All other @@ -341,6 +341,8 @@ def generate_track_info(track_id='track info'): ) for field in TRACK_INFO_FIELDS: setattr(track, field, 'track info') + for field, value in values.items(): + setattr(track, field, value) return track TRACK_INFO_FIELDS = ['artist', 'artist_id', 'artist_sort', diff --git a/test/test_mbsync.py b/test/test_mbsync.py index c7bf43575..2a064a311 100644 --- a/test/test_mbsync.py +++ b/test/test_mbsync.py @@ -33,53 +33,39 @@ class MbsyncCliTest(unittest.TestCase, TestHelper): self.teardown_beets() @patch('beets.autotag.hooks.album_for_mbid') - def test_update_album(self, album_for_mbid): + @patch('beets.autotag.hooks.track_for_mbid') + def test_update_library(self, track_for_mbid, album_for_mbid): album_for_mbid.return_value = \ generate_album_info('album id', ['track id']) + track_for_mbid.return_value = \ + generate_track_info('singleton track id', + {'title': 'singleton info'}) - self.lib.add_album([ - Item( - artist='old artist', - album='old album', - title='old title', - mb_albumid='album id', - mb_trackid='track id', - path='' - ), - ]) - - item = self.lib.items().get() - album = self.lib.albums().get() - - self.assertNotEqual(item.title, 'track info') - self.assertNotEqual(item.artist, 'track info') - self.assertNotEqual(album.album, 'album info') - - self.run_command('mbsync') - - item.load() - album.load() - self.assertEqual(item.title, 'track info') - self.assertEqual(item.artist, 'track info') - self.assertEqual(album.album, 'album info') - - @patch('beets.autotag.hooks.track_for_mbid') - def test_update_singleton(self, track_for_mbid): - track_for_mbid.return_value = generate_track_info('track id') + album_item = Item( + title='old title', + mb_albumid='album id', + mb_trackid='track id', + path='' + ) + album = self.lib.add_album([album_item]) item = Item( - artist='old artist', - album='old album', title='old title', - mb_trackid='track id', + mb_trackid='singleton track id', path='', ) self.lib.add(item) - self.assertNotEqual(item.title, 'track info') self.run_command('mbsync') + item.load() - self.assertEqual(item.title, 'track info') + self.assertEqual(item.title, 'singleton info') + + album_item.load() + self.assertEqual(album_item.title, 'track info') + + album.load() + self.assertEqual(album.album, 'album info') def suite():