def test_order_returns_none_for_extra_tracks(self): items = [] items.append(self.item('one', 1)) items.append(self.item('two', 2)) items.append(self.item('three', 3)) trackinfo = [] trackinfo.append(TrackInfo('one', None)) trackinfo.append(TrackInfo('three', None)) ordered = match.order_items(items, trackinfo) self.assertEqual(ordered, None)
def test_order_returns_none_for_extra_tracks(self): items = [] items.append(self.item("one", 1)) items.append(self.item("two", 2)) items.append(self.item("three", 3)) trackinfo = [] trackinfo.append(TrackInfo("one", None)) trackinfo.append(TrackInfo("three", None)) ordered = match.order_items(items, trackinfo) self.assertEqual(ordered, None)
def test_order_returns_none_for_length_mismatch(self): items = [] items.append(self.item('one', 1)) items.append(self.item('two', 2)) items.append(self.item('three', 3)) items.append(self.item('four',4)) trackinfo = [] trackinfo.append(TrackInfo('one', None)) ordered = match.order_items(items, trackinfo) self.assertEqual(ordered, None)
def test_order_works_with_missing_tracks(self): items = [] items.append(self.item("one", 1)) items.append(self.item("three", 3)) trackinfo = [] trackinfo.append(TrackInfo("one", None)) trackinfo.append(TrackInfo("two", None)) trackinfo.append(TrackInfo("three", None)) ordered = match.order_items(items, trackinfo) self.assertEqual(ordered[0].title, "one") self.assertEqual(ordered[1], None) self.assertEqual(ordered[2].title, "three")
def test_order_works_with_missing_tracks(self): items = [] items.append(self.item('one', 1)) items.append(self.item('three', 3)) trackinfo = [] trackinfo.append(TrackInfo('one', None)) trackinfo.append(TrackInfo('two', None)) trackinfo.append(TrackInfo('three', None)) ordered = match.order_items(items, trackinfo) self.assertEqual(ordered[0].title, 'one') self.assertEqual(ordered[1], None) self.assertEqual(ordered[2].title, 'three')
def test_order_works_with_incomplete_metadata(self): items = [] items.append(self.item("one", 1)) items.append(self.item("three", 1)) items.append(self.item("two", 1)) trackinfo = [] trackinfo.append(TrackInfo("one", None)) trackinfo.append(TrackInfo("two", None)) trackinfo.append(TrackInfo("three", None)) ordered = match.order_items(items, trackinfo) self.assertEqual(ordered[0].title, "one") self.assertEqual(ordered[1].title, "two") self.assertEqual(ordered[2].title, "three")
def test_order_works_with_incomplete_metadata(self): items = [] items.append(self.item('one', 1)) items.append(self.item('three', 1)) items.append(self.item('two', 1)) trackinfo = [] trackinfo.append(TrackInfo('one', None)) trackinfo.append(TrackInfo('two', None)) trackinfo.append(TrackInfo('three', None)) ordered = match.order_items(items, trackinfo) self.assertEqual(ordered[0].title, 'one') self.assertEqual(ordered[1].title, 'two') self.assertEqual(ordered[2].title, 'three')
def test_order_corrects_metadata(self): items = [] items.append(self.item('one', 1)) items.append(self.item('three', 2)) items.append(self.item('two', 3)) trackinfo = [] trackinfo.append(TrackInfo('one', None)) trackinfo.append(TrackInfo('two', None)) trackinfo.append(TrackInfo('three', None)) ordered = match.order_items(items, trackinfo) self.assertEqual(ordered[0].title, 'one') self.assertEqual(ordered[1].title, 'two') self.assertEqual(ordered[2].title, 'three')
def test_order_corrects_when_track_names_are_entirely_wrong(self): # A real-world test case contributed by a user. def item(i, length): return Item( { "artist": "ben harper", "album": "burn to shine", "title": "ben harper - Burn to Shine " + str(i), "track": i, "length": length, "mb_trackid": "", "mb_albumid": "", "mb_artistid": "", } ) items = [] items.append(item(1, 241.37243007106997)) items.append(item(2, 342.27781704375036)) items.append(item(3, 245.95070222338137)) items.append(item(4, 472.87662515485437)) items.append(item(5, 279.1759535763187)) items.append(item(6, 270.33333768012)) items.append(item(7, 247.83435613222923)) items.append(item(8, 216.54504531525072)) items.append(item(9, 225.72775379800484)) items.append(item(10, 317.7643606963552)) items.append(item(11, 243.57001238834192)) items.append(item(12, 186.45916150485752)) def info(title, length): return TrackInfo(title, None, length=length) trackinfo = [] trackinfo.append(info("Alone", 238.893)) trackinfo.append(info("The Woman in You", 341.44)) trackinfo.append(info("Less", 245.59999999999999)) trackinfo.append(info("Two Hands of a Prayer", 470.49299999999999)) trackinfo.append(info("Please Bleed", 277.86599999999999)) trackinfo.append(info("Suzie Blue", 269.30599999999998)) trackinfo.append(info("Steal My Kisses", 245.36000000000001)) trackinfo.append(info("Burn to Shine", 214.90600000000001)) trackinfo.append(info("Show Me a Little Shame", 224.09299999999999)) trackinfo.append(info("Forgiven", 317.19999999999999)) trackinfo.append(info("Beloved One", 243.733)) trackinfo.append(info("In the Lord's Arms", 186.13300000000001)) ordered = match.order_items(items, trackinfo) for i, item in enumerate(ordered): self.assertEqual(i + 1, item.track)
def test_order_corrects_when_track_names_are_entirely_wrong(self): # A real-world test case contributed by a user. def item(i, length): return Item({ 'artist': 'ben harper', 'album': 'burn to shine', 'title': 'ben harper - Burn to Shine ' + str(i), 'track': i, 'length': length, 'mb_trackid': '', 'mb_albumid': '', 'mb_artistid': '', }) items = [] items.append(item(1, 241.37243007106997)) items.append(item(2, 342.27781704375036)) items.append(item(3, 245.95070222338137)) items.append(item(4, 472.87662515485437)) items.append(item(5, 279.1759535763187)) items.append(item(6, 270.33333768012)) items.append(item(7, 247.83435613222923)) items.append(item(8, 216.54504531525072)) items.append(item(9, 225.72775379800484)) items.append(item(10, 317.7643606963552)) items.append(item(11, 243.57001238834192)) items.append(item(12, 186.45916150485752)) def info(title, length): return TrackInfo(title, None, length=length) trackinfo = [] trackinfo.append(info('Alone', 238.893)) trackinfo.append(info('The Woman in You', 341.44)) trackinfo.append(info('Less', 245.59999999999999)) trackinfo.append(info('Two Hands of a Prayer', 470.49299999999999)) trackinfo.append(info('Please Bleed', 277.86599999999999)) trackinfo.append(info('Suzie Blue', 269.30599999999998)) trackinfo.append(info('Steal My Kisses', 245.36000000000001)) trackinfo.append(info('Burn to Shine', 214.90600000000001)) trackinfo.append(info('Show Me a Little Shame', 224.09299999999999)) trackinfo.append(info('Forgiven', 317.19999999999999)) trackinfo.append(info('Beloved One', 243.733)) trackinfo.append(info('In the Lord\'s Arms', 186.13300000000001)) ordered = match.order_items(items, trackinfo) for i, item in enumerate(ordered): self.assertEqual(i + 1, item.track)