extra_items and extra_tracks on AlbumInfo are now lists, sorted by track index and title.

This commit is contained in:
Tai Lee 2013-05-25 00:44:23 +10:00
parent 7f068a8c03
commit dc7e98fd22
2 changed files with 14 additions and 12 deletions

View file

@ -192,8 +192,10 @@ def assign_items(items, tracks):
# Produce the output matching.
mapping = dict((items[i], tracks[j]) for (i, j) in matching)
extra_items = set(items) - set(mapping.keys())
extra_tracks = set(tracks) - set(mapping.values())
extra_items = list(set(items) - set(mapping.keys()))
extra_items.sort(key=lambda i: (i.disc, i.track, i.title))
extra_tracks = list(set(tracks) - set(mapping.values()))
extra_tracks.sort(key=lambda t: (t.index, t.title))
return mapping, extra_items, extra_tracks
def track_index_changed(item, track_info):

View file

@ -409,8 +409,8 @@ class AssignmentTest(unittest.TestCase):
trackinfo.append(TrackInfo(u'three', None))
mapping, extra_items, extra_tracks = \
match.assign_items(items, trackinfo)
self.assertEqual(extra_items, set())
self.assertEqual(extra_tracks, set())
self.assertEqual(extra_items, [])
self.assertEqual(extra_tracks, [])
self.assertEqual(mapping, {
items[0]: trackinfo[0],
items[1]: trackinfo[2],
@ -428,8 +428,8 @@ class AssignmentTest(unittest.TestCase):
trackinfo.append(TrackInfo(u'three', None))
mapping, extra_items, extra_tracks = \
match.assign_items(items, trackinfo)
self.assertEqual(extra_items, set())
self.assertEqual(extra_tracks, set())
self.assertEqual(extra_items, [])
self.assertEqual(extra_tracks, [])
self.assertEqual(mapping, {
items[0]: trackinfo[0],
items[1]: trackinfo[2],
@ -446,8 +446,8 @@ class AssignmentTest(unittest.TestCase):
trackinfo.append(TrackInfo(u'three', None))
mapping, extra_items, extra_tracks = \
match.assign_items(items, trackinfo)
self.assertEqual(extra_items, set())
self.assertEqual(extra_tracks, set([trackinfo[1]]))
self.assertEqual(extra_items, [])
self.assertEqual(extra_tracks, [[trackinfo[1]]])
self.assertEqual(mapping, {
items[0]: trackinfo[0],
items[1]: trackinfo[2],
@ -463,8 +463,8 @@ class AssignmentTest(unittest.TestCase):
trackinfo.append(TrackInfo(u'three', None))
mapping, extra_items, extra_tracks = \
match.assign_items(items, trackinfo)
self.assertEqual(extra_items, set([items[1]]))
self.assertEqual(extra_tracks, set())
self.assertEqual(extra_items, [[items[1]]])
self.assertEqual(extra_tracks, [])
self.assertEqual(mapping, {
items[0]: trackinfo[0],
items[2]: trackinfo[1],
@ -513,8 +513,8 @@ class AssignmentTest(unittest.TestCase):
mapping, extra_items, extra_tracks = \
match.assign_items(items, trackinfo)
self.assertEqual(extra_items, set())
self.assertEqual(extra_tracks, set())
self.assertEqual(extra_items, [])
self.assertEqual(extra_tracks, [])
for item, info in mapping.iteritems():
self.assertEqual(items.index(item), trackinfo.index(info))