Hide task specific code from importer stage

This commit is contained in:
Thomas Scholtes 2014-09-16 12:52:15 +02:00
parent f5e1846ff0
commit e579db6f0a
2 changed files with 10 additions and 13 deletions

View file

@ -543,7 +543,7 @@ class ImportTask(object):
duplicates.append(album)
return duplicates
def infer_album_fields(self):
def align_album_level_fields(self):
"""Make the some album fields equal across `self.items`
"""
changes = {}
@ -618,6 +618,7 @@ class ImportTask(object):
def add(self, lib):
"""Add the items as an album to the library and remove replaced items.
"""
self.align_album_level_fields()
with lib.transaction():
self.remove_replaced(lib)
self.album = lib.add_album(self.imported_items())
@ -1162,10 +1163,6 @@ def apply_choices(session, task):
task.apply_metadata()
plugins.send('import_task_apply', session=session, task=task)
# Infer album-level fields.
if task.is_album:
task.infer_album_fields()
task.add(session.lib)

View file

@ -879,7 +879,7 @@ class InferAlbumDataTest(_common.TestCase):
def test_asis_homogenous_single_artist(self):
self.task.set_choice(importer.action.ASIS)
self.task.infer_album_fields()
self.task.align_album_level_fields()
self.assertFalse(self.items[0].comp)
self.assertEqual(self.items[0].albumartist, self.items[2].artist)
@ -888,7 +888,7 @@ class InferAlbumDataTest(_common.TestCase):
self.items[1].artist = 'some other artist'
self.task.set_choice(importer.action.ASIS)
self.task.infer_album_fields()
self.task.align_album_level_fields()
self.assertTrue(self.items[0].comp)
self.assertEqual(self.items[0].albumartist, 'Various Artists')
@ -898,7 +898,7 @@ class InferAlbumDataTest(_common.TestCase):
self.items[1].artist = 'some other artist'
self.task.set_choice(importer.action.ASIS)
self.task.infer_album_fields()
self.task.align_album_level_fields()
for item in self.items:
self.assertTrue(item.comp)
@ -908,7 +908,7 @@ class InferAlbumDataTest(_common.TestCase):
self.items[0].artist = 'another artist'
self.task.set_choice(importer.action.ASIS)
self.task.infer_album_fields()
self.task.align_album_level_fields()
self.assertFalse(self.items[0].comp)
self.assertEqual(self.items[0].albumartist, self.items[2].artist)
@ -921,7 +921,7 @@ class InferAlbumDataTest(_common.TestCase):
item.mb_albumartistid = 'some album artist id'
self.task.set_choice(importer.action.ASIS)
self.task.infer_album_fields()
self.task.align_album_level_fields()
self.assertEqual(self.items[0].albumartist,
'some album artist')
@ -931,7 +931,7 @@ class InferAlbumDataTest(_common.TestCase):
def test_apply_gets_artist_and_id(self):
self.task.set_choice(AlbumMatch(0, None, {}, set(), set())) # APPLY
self.task.infer_album_fields()
self.task.align_album_level_fields()
self.assertEqual(self.items[0].albumartist, self.items[0].artist)
self.assertEqual(self.items[0].mb_albumartistid,
@ -943,7 +943,7 @@ class InferAlbumDataTest(_common.TestCase):
item.mb_albumartistid = 'some album artist id'
self.task.set_choice(AlbumMatch(0, None, {}, set(), set())) # APPLY
self.task.infer_album_fields()
self.task.align_album_level_fields()
self.assertEqual(self.items[0].albumartist,
'some album artist')
@ -954,7 +954,7 @@ class InferAlbumDataTest(_common.TestCase):
self.items = [self.items[0]]
self.task.items = self.items
self.task.set_choice(importer.action.ASIS)
self.task.infer_album_fields()
self.task.align_album_level_fields()
self.assertFalse(self.items[0].comp)