def test_heterogeneous_album_gets_single_directory(self): i1, i2 = item(), item() self.lib.add_album([i1, i2]) i1.year, i2.year = 2009, 2010 self.lib.path_formats = [('default', '$album ($year)/$track $title')] dest1, dest2 = i1.destination(), i2.destination() self.assertEqual(os.path.dirname(dest1), os.path.dirname(dest2))
def setUp(self): self.lib = library.Library(':memory:', path_formats=[ ('default', 'albums/$album/$title'), ('singleton:true', 'tracks/$artist/$title'), ]) self.lib.add(_common.item()) self.lib.add_album([_common.item()]) self.tree = vfs.libtree(self.lib)
def setUp(self): self.lib = library.Library( ":memory:", path_formats={"default": "albums/$album/$title", "singleton": "tracks/$artist/$title"} ) self.lib.add(_common.item()) self.lib.add_album([_common.item()]) self.lib.save() self.tree = vfs.libtree(self.lib)
def setUp(self): self.album_item = _common.item() self.album_item.title = 'album item' self.single_item = _common.item() self.single_item.title = 'singleton item' self.single_item.comp = False self.lib = beets.library.Library(':memory:') self.lib.add(self.single_item) self.lib.add_album([self.album_item])
def setUp(self): self.album_item = _common.item() self.album_item.title = "album item" self.single_item = _common.item() self.single_item.title = "singleton item" self.single_item.comp = False self.lib = beets.library.Library(":memory:") self.lib.add(self.single_item) self.album = self.lib.add_album([self.album_item])
def setUp(self): self.lib = beets.library.Library(":memory:") self.lib.directory = "/base" self.lib.path_formats = [("default", u"path")] self.i1 = item() self.i1.year = 2001 self.lib.add_album([self.i1]) self.i2 = item() self.i2.year = 2002 self.lib.add_album([self.i2]) self.lib._connection().commit() self._setf(u"foo%aunique{albumartist album,year}/$title")
def setUp(self): self.lib = beets.library.Library(':memory:') self.lib.directory = '/base' self.lib.path_formats = [('default', u'path')] self.i1 = item() self.i1.year = 2001 self.lib.add_album([self.i1]) self.i2 = item() self.i2.year = 2002 self.lib.add_album([self.i2]) self.lib._connection().commit() self._setf(u'foo%aunique{albumartist album,year}/$title')
def setUp(self): i1 = _common.item() i2 = _common.item() i3 = _common.item() i1.title = "first item" i2.title = "second item" i3.title = "third item" i1.comp = i2.comp = i3.comp = False i1.albumartist = i2.albumartist = i3.albumartist = "" i1.mb_albumartistid = i2.mb_albumartistid = i3.mb_albumartistid = "" self.items = [i1, i2, i3] self.task = importer.ImportTask(path="a path", toppath="top path", items=self.items) self.task.set_null_candidates()
def setUp(self): super(InferAlbumDataTest, self).setUp() i1 = _common.item() i2 = _common.item() i3 = _common.item() i1.title = "first item" i2.title = "second item" i3.title = "third item" i1.comp = i2.comp = i3.comp = False i1.albumartist = i2.albumartist = i3.albumartist = "" i1.mb_albumartistid = i2.mb_albumartistid = i3.mb_albumartistid = "" self.items = [i1, i2, i3] self.task = importer.ImportTask(paths=["a path"], toppath="top path", items=self.items)
def setUp(self): i1 = _common.item() i2 = _common.item() i3 = _common.item() i1.title = 'first item' i2.title = 'second item' i3.title = 'third item' i1.comp = i2.comp = i3.comp = False i1.albumartist = i2.albumartist = i3.albumartist = '' i1.mb_albumartistid = i2.mb_albumartistid = i3.mb_albumartistid = '' self.items = [i1, i2, i3] self.task = importer.ImportTask(path='a path', toppath='top path', items=self.items) self.task.set_null_match()
def setUp(self): self.lib = beets.library.Library(':memory:') path_item = _common.item() path_item.path = '/a/b/c.mp3' path_item.title = 'path item' self.lib.add(path_item)
def _no_candidates_test(self, result): task = importer.ImportTask("toppath", "path", [_common.item()]) task.set_candidates("artist", "album", [], autotag.recommendation.none) session = _common.import_session(cli=True) res = session.choose_match(task) self.assertEqual(res, result) self.assertTrue("No match" in self.io.getoutput())
def setUp(self): super(InferAlbumDataTest, self).setUp() i1 = _common.item() i2 = _common.item() i3 = _common.item() i1.title = 'first item' i2.title = 'second item' i3.title = 'third item' i1.comp = i2.comp = i3.comp = False i1.albumartist = i2.albumartist = i3.albumartist = '' i1.mb_albumartistid = i2.mb_albumartistid = i3.mb_albumartistid = '' self.items = [i1, i2, i3] self.task = importer.ImportTask(paths=['a path'], toppath='top path', items=self.items)
def test_infer_aa_gets_artist_and_id(self): i = item() i.albumartist = '' i.mb_albumartistid = '' ai = self.lib.add_album((i,), infer_aa=True) self.assertEqual(ai.albumartist, i.artist) self.assertEqual(ai.mb_albumartistid, i.mb_artistid)
def test_no_infer_aa_sets_blank_artist_and_id(self): i = item() i.albumartist = '' i.mb_albumartistid = '' ai = self.lib.add_album((i,), infer_aa=False) self.assertEqual(ai.albumartist, '') self.assertEqual(ai.mb_albumartistid, '')
def test_singleton_path(self): i = item() self.lib.directory = 'one' self.lib.path_formats = {'default': 'two', 'comp': 'three', 'singleton': 'four'} self.assertEqual(self.lib.destination(i), np('one/four'))
def setUp(self): super(ArtDestinationTest, self).setUp() self.lib = beets.library.Library(':memory:') self.i = item() self.i.path = self.lib.destination(self.i) self.lib.art_filename = 'artimage' self.ai = self.lib.add_album((self.i,))
def setUp(self): self.dbpath = os.path.join(_common.RSRC, 'templib.blb') self.lib = library.Library(self.dbpath) self.session = _common.import_session(self.lib) # Make an "album" that has a homogenous artist. (Modified by # individual tests.) i1 = _common.item() i2 = _common.item() i3 = _common.item() i1.title = 'first item' i2.title = 'second item' i3.title = 'third item' i1.comp = i2.comp = i3.comp = False i1.albumartist = i2.albumartist = i3.albumartist = '' self.items = [i1, i2, i3]
def setUp(self): self.dbpath = os.path.join(_common.RSRC, 'templib.blb') self.lib = library.Library(self.dbpath) self.config = _common.iconfig(self.lib, write=False, copy=False) # Make an "album" that has a homogenous artist. (Modified by # individual tests.) i1 = _common.item() i2 = _common.item() i3 = _common.item() i1.title = 'first item' i2.title = 'second item' i3.title = 'third item' i1.comp = i2.comp = i3.comp = False i1.albumartist = i2.albumartist = i3.albumartist = '' self.items = [i1, i2, i3]
def setUp(self): self.dbpath = os.path.join(_common.RSRC, "templib.blb") self.lib = library.Library(self.dbpath) self.config = _common.iconfig(self.lib, write=False, copy=False) # Make an "album" that has a homogenous artist. (Modified by # individual tests.) i1 = _common.item() i2 = _common.item() i3 = _common.item() i1.title = "first item" i2.title = "second item" i3.title = "third item" i1.comp = i2.comp = i3.comp = False i1.albumartist = i2.albumartist = i3.albumartist = "" self.items = [i1, i2, i3]
def setUp(self): self.lib = beets.library.Library(":memory:") path_item = _common.item() path_item.path = "/a/b/c.mp3" path_item.title = "path item" self.lib.add(path_item)
def _items_and_info(self): items = [_common.item()] items[0].track = 1 items[0].path = '/path/to/file.mp3' info = autotag.AlbumInfo('the album', 'album id', 'the artist', 'artist id', [autotag.TrackInfo('the title', 'track id')]) return items, info
def _items_and_info(self): items = [_common.item()] items[0].track = 1 items[0].path = "/path/to/file.mp3" info = autotag.AlbumInfo( "the album", "album id", "the artist", "artist id", [autotag.TrackInfo("the title", "track id")] ) return items, info
def setUp(self): super(InferAlbumDataTest, self).setUp() i1 = _common.item() i2 = _common.item() i3 = _common.item() i1.title = 'first item' i2.title = 'second item' i3.title = 'third item' i1.comp = i2.comp = i3.comp = False i1.albumartist = i2.albumartist = i3.albumartist = '' i1.mb_albumartistid = i2.mb_albumartistid = i3.mb_albumartistid = '' self.items = [i1, i2, i3] self.task = importer.ImportTask(paths=['a path'], toppath='top path', items=self.items) self.task.set_null_candidates()
def test_special_char_path_added_to_database(self): self.i.remove() path = 'b\xe1r' i = item() i.path = path self.lib.add(i) i = list(self.lib.items())[0] self.assertEqual(i.path, path)
def test_special_char_path_added_to_database(self): self.lib.remove(self.i) path = 'b\xe1r' i = item() i.path = path self.lib.add(i) i = list(self.lib.items())[0] self.assertEqual(i.path, path)
def setUp(self): self.io = _common.DummyIO() self.io.install() self.lib = library.Library(':memory:') i = _common.item() self.lib.add(i) self.lib.add_album([i])
def setUp(self): super(DummyDataTestCase, self).setUp() self.lib = beets.library.Library(':memory:') albums = [_common.album() for _ in range(3)] albums[0].album = "album A" albums[0].genre = "Rock" albums[0].year = "2001" albums[0].flex1 = "flex1-1" albums[0].flex2 = "flex2-A" albums[1].album = "album B" albums[1].genre = "Rock" albums[1].year = "2001" albums[1].flex1 = "flex1-2" albums[1].flex2 = "flex2-A" albums[2].album = "album C" albums[2].genre = "Jazz" albums[2].year = "2005" albums[2].flex1 = "flex1-1" albums[2].flex2 = "flex2-B" for album in albums: self.lib.add(album) items = [_common.item() for _ in range(4)] items[0].title = 'foo bar' items[0].artist = 'one' items[0].album = 'baz' items[0].year = 2001 items[0].comp = True items[0].flex1 = "flex1-0" items[0].flex2 = "flex2-A" items[0].album_id = albums[0].id items[1].title = 'baz qux' items[1].artist = 'two' items[1].album = 'baz' items[1].year = 2002 items[1].comp = True items[1].flex1 = "flex1-1" items[1].flex2 = "flex2-A" items[1].album_id = albums[0].id items[2].title = 'beets 4 eva' items[2].artist = 'three' items[2].album = 'foo' items[2].year = 2003 items[2].comp = False items[2].flex1 = "flex1-2" items[2].flex2 = "flex1-B" items[2].album_id = albums[1].id items[3].title = 'beets 4 eva' items[3].artist = 'three' items[3].album = 'foo2' items[3].year = 2004 items[3].comp = False items[3].flex1 = "flex1-2" items[3].flex2 = "flex1-C" items[3].album_id = albums[2].id for item in items: self.lib.add(item)
def test_singleton_track_falls_back_to_default(self): i = item() i.comp = True i.albumtype = 'atype' self.lib.directory = 'one' self.lib.path_formats = {'default': 'two', 'comp': 'three', 'atype': 'four'} self.assertEqual(self.lib.destination(i), np('one/two'))
def _items_and_info(self): items = [_common.item()] items[0].track = 1 items[0].path = '/path/to/file.mp3' info = autotag.AlbumInfo( 'the album', 'album id', 'the artist', 'artist id', [ autotag.TrackInfo('the title', 'track id') ]) return items, info
def setUp(self): self._tv_map = {} self.old_template_values = plugins.template_values plugins.template_values = self._template_values self.lib = beets.library.Library(':memory:') self.lib.directory = '/base' self.lib.path_formats = [('default', u'$artist $foo')] self.i = item()
def setUp(self): self._tv_map = {} self.old_template_values = plugins.template_values plugins.template_values = self._template_values self.lib = beets.library.Library(":memory:") self.lib.directory = "/base" self.lib.path_formats = [("default", u"$artist $foo")] self.i = item()
def test_singleton_path(self): i = item() self.lib.directory = 'one' self.lib.path_formats = [ ('default', 'two'), ('singleton:true', 'four'), ('comp:true', 'three'), ] self.assertEqual(self.lib.destination(i), np('one/four'))
def setUp(self): super(AsIsApplyTest, self).setUp() self.dbpath = os.path.join(self.temp_dir, 'templib.blb') self.lib = library.Library(self.dbpath) self.session = _common.import_session(self.lib) # Make an "album" that has a homogenous artist. (Modified by # individual tests.) i1 = _common.item() i2 = _common.item() i3 = _common.item() i1.title = 'first item' i2.title = 'second item' i3.title = 'third item' i1.comp = i2.comp = i3.comp = False i1.albumartist = i2.albumartist = i3.albumartist = '' self.items = [i1, i2, i3]
def test_singleton_path(self): i = item(self.lib) self.lib.directory = 'one' self.lib.path_formats = [ ('default', 'two'), ('singleton:true', 'four'), ('comp:true', 'three'), ] self.assertEqual(i.destination(), np('one/four'))
def setUp(self): super(ShowChangeTest, self).setUp() self.io.install() self.items = [_common.item()] self.items[0].track = 1 self.items[0].path = '/path/to/file.mp3' self.info = autotag.AlbumInfo( u'the album', u'album id', u'the artist', u'artist id', [autotag.TrackInfo(u'the title', u'track id', index=1)])
def setUp(self): self.io = _common.DummyIO() self.io.install() self.items = [_common.item()] self.items[0].track = 1 self.items[0].path = '/path/to/file.mp3' self.info = autotag.AlbumInfo( 'the album', 'album id', 'the artist', 'artist id', [autotag.TrackInfo('the title', 'track id', index=1)])
def test_comp_before_singleton_path(self): i = item(self.lib) i.comp = True self.lib.directory = 'one' self.lib.path_formats = [ ('default', 'two'), ('comp:true', 'three'), ('singleton:true', 'four'), ] self.assertEqual(i.destination(), np('one/three'))
def test_albuminfo_for_two_items_doesnt_duplicate_row(self): i2 = item(self.lib) self.lib.get_album(self.i) self.lib.get_album(i2) c = self.lib._connection().cursor() c.execute('select * from albums where album=?', (self.i.album, )) # Cursor should only return one row. self.assertNotEqual(c.fetchone(), None) self.assertEqual(c.fetchone(), None)
def setUp(self): super(ArtDestinationTest, self).setUp() config['art_filename'] = u'artimage' config['replace'] = {u'X': u'Y'} self.lib = beets.library.Library(':memory:', replacements=[(re.compile(u'X'), u'Y') ]) self.i = item(self.lib) self.i.path = self.i.destination() self.ai = self.lib.add_album((self.i, ))
def setUp(self): super(ListTest, self).setUp() self.io.install() self.lib = library.Library(':memory:') i = _common.item() i.path = 'xxx/yyy' self.lib.add(i) self.lib.add_album([i]) self.item = i
def _no_candidates_test(self, result): task = importer.ImportTask( 'toppath', 'path', [_common.item()], ) task.set_match('artist', 'album', [], autotag.RECOMMEND_NONE) res = commands.choose_match(task, _common.iconfig(None, quiet=False)) self.assertEqual(res, result) self.assertTrue('No match' in self.io.getoutput())
def _no_candidates_test(self, result): task = importer.ImportTask( 'toppath', 'path', [_common.item()], ) task.set_candidates('artist', 'album', [], autotag.recommendation.none) session = _common.import_session(cli=True) res = session.choose_match(task) self.assertEqual(res, result) self.assertTrue('No match' in self.io.getoutput())
def test_setart_copies_image(self): newart = os.path.join(self.libdir, 'newart.jpg') touch(newart) i2 = item() i2.path = self.i.path i2.artist = 'someArtist' ai = self.lib.add_album((i2, )) i2.move(self.lib, True) self.assertEqual(ai.artpath, None) ai.set_art(newart) self.assertTrue(os.path.exists(ai.artpath))
def setUp(self): # Make library and item. self.lib = beets.library.Library(':memory:') self.libdir = os.path.abspath(os.path.join(_common.RSRC, 'testlibdir')) self.lib.directory = self.libdir self.i = item() self.i.path = self.lib.destination(self.i) # Make a music file. util.mkdirall(self.i.path) touch(self.i.path) # Make an album with the item. self.ai = self.lib.add_album((self.i, ))
def setUp(self): super(RemoveTest, self).setUp() # Make library and item. self.lib = beets.library.Library(':memory:') self.libdir = os.path.join(self.temp_dir, 'testlibdir') self.lib.directory = self.libdir self.i = item(self.lib) self.i.path = self.i.destination() # Make a music file. util.mkdirall(self.i.path) touch(self.i.path) # Make an album with the item. self.ai = self.lib.add_album((self.i,))
def setUp(self): # Make library and item. self.lib = beets.library.Library(':memory:') self.lib.path_formats = \ {'default': join('$albumartist', '$album', '$title')} self.libdir = os.path.join(_common.RSRC, 'testlibdir') self.lib.directory = self.libdir self.i = item() # Make a file for the item. self.i.path = self.lib.destination(self.i) util.mkdirall(self.i.path) touch(self.i.path) # Make an album. self.ai = self.lib.add_album((self.i, ))
def _item_task(self, asis, artist=None, title=None, existing=False): if existing: item = self.i else: item = _common.item() artist = artist or item.artist title = title or item.title task = importer.ImportTask.item_task(item) if asis: item.artist = artist item.title = title task.set_choice(importer.action.ASIS) else: task.set_choice(TrackMatch(0, TrackInfo(title, None, artist))) return task
def setUp(self): # Make library and item. self.lib = beets.library.Library(':memory:') self.libdir = os.path.abspath(os.path.join(_common.RSRC, 'testlibdir')) self.lib.directory = self.libdir self.i = item() self.i.path = self.lib.destination(self.i) # Make a music file. util.mkdirall(self.i.path) touch(self.i.path) # Make an album. self.ai = self.lib.add_album((self.i, )) # Make an art file too. self.art = self.lib.get_album(self.i).art_destination('something.jpg') touch(self.art) self.ai.artpath = self.art
def test_move_not_last_file_does_not_move_albumart(self): i2 = item() i2.albumid = self.ai.id self.lib.add(i2) oldartpath = self.lib.albums()[0].artpath self.assertExists(oldartpath) self.i.album = 'different_album' self.i.album_id = None # detach from album self.lib.move(self.i) artpath = self.lib.albums()[0].artpath self.assertFalse('different_album' in artpath) self.assertEqual(artpath, oldartpath) self.assertExists(oldartpath)
def test_setart_to_existing_but_unset_art_works(self): newart = os.path.join(self.libdir, 'newart.jpg') touch(newart) i2 = item() i2.path = self.i.path i2.artist = 'someArtist' ai = self.lib.add_album((i2, )) self.lib.move(i2, True) # Copy the art to the destination. artdest = ai.art_destination(newart) shutil.copy(newart, artdest) # Set the art again. ai.set_art(artdest) self.assertTrue(os.path.exists(ai.artpath))
def test_setart_to_existing_art_works(self): os.remove(self.art) # Original art. newart = os.path.join(self.libdir, 'newart.jpg') touch(newart) i2 = item() i2.path = self.i.path i2.artist = 'someArtist' ai = self.lib.add_album((i2, )) self.lib.move(i2, True) ai.set_art(newart) # Set the art again. ai.set_art(ai.artpath) self.assertTrue(os.path.exists(ai.artpath))