def test_split_on_feat(self): parts = ftintitle.split_on_feat("Alice ft. Bob") self.assertEqual(parts, ("Alice", "Bob")) parts = ftintitle.split_on_feat("Alice feat Bob") self.assertEqual(parts, ("Alice", "Bob")) parts = ftintitle.split_on_feat("Alice feat. Bob") self.assertEqual(parts, ("Alice", "Bob")) parts = ftintitle.split_on_feat("Alice featuring Bob") self.assertEqual(parts, ("Alice", "Bob")) parts = ftintitle.split_on_feat("Alice & Bob") self.assertEqual(parts, ("Alice", "Bob")) parts = ftintitle.split_on_feat("Alice and Bob") self.assertEqual(parts, ("Alice", "Bob")) parts = ftintitle.split_on_feat("Alice With Bob") self.assertEqual(parts, ("Alice", "Bob")) parts = ftintitle.split_on_feat("Alice defeat Bob") self.assertEqual(parts, ("Alice defeat Bob", None))
def test_split_on_feat(self): parts = ftintitle.split_on_feat('Alice ft. Bob') self.assertEqual(parts, ('Alice', 'Bob')) parts = ftintitle.split_on_feat('Alice feat Bob') self.assertEqual(parts, ('Alice', 'Bob')) parts = ftintitle.split_on_feat('Alice feat. Bob') self.assertEqual(parts, ('Alice', 'Bob')) parts = ftintitle.split_on_feat('Alice featuring Bob') self.assertEqual(parts, ('Alice', 'Bob')) parts = ftintitle.split_on_feat('Alice & Bob') self.assertEqual(parts, ('Alice', 'Bob')) parts = ftintitle.split_on_feat('Alice and Bob') self.assertEqual(parts, ('Alice', 'Bob')) parts = ftintitle.split_on_feat('Alice With Bob') self.assertEqual(parts, ('Alice', 'Bob')) parts = ftintitle.split_on_feat('Alice defeat Bob') self.assertEqual(parts, ('Alice defeat Bob', None))
def _components_from_item(self, item): """ :param item: :type item: beets.library.Item :return: dictionary of track components :rtype dict """ components = { "Album": item.album, "Track_name": item.title, "Track_num": item.track, "Artist": item.artist, "SortArtist": split_on_feat(item.artist)[0], # Gorillaz ft the doors --> ('Gorillaz', 'The Doors') "DiscNumber": item.disc, "Year": item.year, "Genre": item.genre } return {k: six.u(str(v)) for k, v in six.iteritems(components)}