def genres(self, album): """Return the current genres of an album if they exist and the force option is not set or get genres from whatlastgenre. """ if album.genre and not self.config['force']: self._log.info('not forcing genre update for album {0}', album) return album.genre metadata = Metadata( path=album.item_dir().decode(), type='beet', artists=[(t.artist, t.mb_artistid) for t in album.items()], albumartist=(album.albumartist, album.mb_albumartistid), album=album.album, mbid_album=album.mb_albumid, mbid_relgrp=album.mb_releasegroupid, year=album.year, releasetype=album.albumtype) genres, _ = self.wlg.query_album(metadata) try: genres = self.config['separator'].get(str).join(genres) self._log.info('genres for album {0}: {1}', album, genres) except TypeError: self._log.info('No genres found for album {0}', album) return genres
def test_create_queries_with_albumartist(self): metadata = Metadata(path='/tmp', type='test', albumartist=('AlbumArtist', None), artists=[('Artist A', None), ('Artist B', None), ('Artist C', None), ('Artist D', None)], album='Album', mbid_album=None, mbid_relgrp=None, year=1987, releasetype=None) queries = self.wlg.create_queries(metadata) self.assertEqual(len(queries), 2 * len(self.wlg.daprs))
def test_query_album(self): metadata = Metadata(path='/tmp', type='test', artists=[('Artist A', None), ('Artist B', None), ('Artist C', None), ('Artist D', None)], albumartist=('AlbumArtist', None), album='Album', mbid_album=None, mbid_relgrp=None, year=1987, releasetype=None) genres, release = self.wlg.query_album(metadata) self.assertIsNotNone(genres) self.assertIsNone(release)
def test_create_queries_without_albumartist(self): metadata = Metadata(path='/tmp', type='test', artists=[('Artist A', None), ('Artist B', None), ('Artist C', None), ('Artist D', None)], albumartist=(None, None), album='Album', mbid_album=None, mbid_relgrp=None, year=1987, releasetype=None) # vaqueries enabled self.wlg.conf.set('wlg', 'vaqueries', str(True)) queries = self.wlg.create_queries(metadata) self.assertEqual(len(queries), 5 * len(self.wlg.daprs)) # va queries disabled self.wlg.conf.set('wlg', 'vaqueries', str(False)) queries = self.wlg.create_queries(metadata) self.assertEqual(len(queries), 1 * len(self.wlg.daprs))