def test_modified_metadata_not_moved(self): mf = MediaFile(self.i.path) mf.title = 'differentTitle' mf.save() self._update(move=False) item = self.lib.items().next() self.assertTrue('differentTitle' not in item.path)
def test_modified_metadata_detected(self): mf = MediaFile(self.i.path) mf.title = u'differentTitle' mf.save() self._update() item = self.lib.items().get() self.assertEqual(item.title, u'differentTitle')
def test_modified_metadata_moved(self): mf = MediaFile(self.i.path) mf.title = 'differentTitle' mf.save() self._update(move=True) item = self.lib.items().next() self.assertTrue('differentTitle' in item.path)
def test_modified_metadata_not_moved(self): mf = MediaFile(self.i.path) mf.title = u'differentTitle' mf.save() self._update(move=False) item = self.lib.items().get() self.assertTrue(u'differentTitle' not in item.path)
def test_modified_metadata_detected(self): mf = MediaFile(self.i.path) mf.title = 'differentTitle' mf.save() self._update() item = self.lib.items().next() self.assertEqual(item.title, 'differentTitle')
def test_modified_metadata_moved(self): mf = MediaFile(self.i.path) mf.title = u'differentTitle' mf.save() self._update(move=True) item = self.lib.items().get() self.assertTrue(b'differentTitle' in item.path)
def test_asis_updates_metadata(self): self.setup_importer.run() medium = MediaFile(self.lib.items().get().path) medium.title = 'New Title' medium.save() self.importer.add_choice(importer.action.ASIS) self.importer.run() self.assertEqual(self.lib.items().get().title, 'New Title')
def test_asis_updates_metadata(self): self.setup_importer.run() medium = MediaFile(self.lib.items().get().path) medium.title = 'New Title' medium.save() self.importer.add_choice(importer.action.ASIS) self.importer.run() self.assertEqual(self.lib.items().get().title, 'New Title')
def test_selective_modified_metadata_not_moved(self): mf = MediaFile(syspath(self.i.path)) mf.title = u'differentTitle' mf.genre = u'differentGenre' mf.save() self._update(move=False, fields=['title']) item = self.lib.items().get() self.assertTrue(b'differentTitle' not in item.path) self.assertNotEqual(item.genre, u'differentGenre')
def test_selective_modified_metadata_not_moved(self): mf = MediaFile(syspath(self.i.path)) mf.title = u'differentTitle' mf.genre = u'differentGenre' mf.save() self._update(move=False, fields=['title']) item = self.lib.items().get() self.assertTrue(b'differentTitle' not in item.path) self.assertNotEqual(item.genre, u'differentGenre')
def test_mtime_match_skips_update(self): mf = MediaFile(self.i.path) mf.title = u'differentTitle' mf.save() # Make in-memory mtime match on-disk mtime. self.i.mtime = os.path.getmtime(self.i.path) self.i.store() self._update(reset_mtime=False) item = self.lib.items().get() self.assertEqual(item.title, u'full')
def test_mtime_match_skips_update(self): mf = MediaFile(self.i.path) mf.title = 'differentTitle' mf.save() # Make in-memory mtime match on-disk mtime. self.i.mtime = os.path.getmtime(self.i.path) self.lib.store(self.i) self._update(reset_mtime=False) item = self.lib.items().next() self.assertEqual(item.title, 'full')
def test_asis_updated_moves_file(self): self.setup_importer.run() medium = MediaFile(self.lib.items().get().path) medium.title = "New Title" medium.save() old_path = os.path.join("Applied Artist", "Applied Album", "Applied Title 1.mp3") self.assert_file_in_lib(old_path) self.importer.add_choice(importer.action.ASIS) self.importer.run() self.assert_file_in_lib("Applied Artist", "Applied Album", "New Title.mp3") self.assert_file_not_in_lib(old_path)
def test_convert_write_tags(self): item = self.add_track(myexternal='true', format='m4a', title=u'TITLE') # We "convert" by copying the file. Setting the title simulates # a badly behaved converter mediafile_converted = MediaFile(syspath(item.path)) mediafile_converted.title = u'WRONG' mediafile_converted.save() self.runcli('alt', 'update', 'myexternal') item.load() alt_mediafile = MediaFile(syspath(self.get_path(item))) self.assertEqual(alt_mediafile.title, u'TITLE')
def test_asis_updated_moves_file(self): self.setup_importer.run() medium = MediaFile(self.lib.items().get().path) medium.title = 'New Title' medium.save() old_path = os.path.join('Applied Artist', 'Applied Album', 'Applied Title 1.mp3') self.assert_file_in_lib(old_path) self.importer.add_choice(importer.action.ASIS) self.importer.run() self.assert_file_in_lib('Applied Artist', 'Applied Album', 'New Title.mp3') self.assert_file_not_in_lib(old_path)
def test_asis_updated_without_copy_does_not_move_file(self): self.setup_importer.run() medium = MediaFile(self.lib.items().get().path) medium.title = 'New Title' medium.save() old_path = os.path.join('Applied Artist', 'Applied Album', 'Applied Title 1.mp3') self.assert_file_in_lib(old_path) config['import']['copy'] = False self.importer.add_choice(importer.action.ASIS) self.importer.run() self.assert_file_not_in_lib('Applied Artist', 'Applied Album', 'New Title.mp3') self.assert_file_in_lib(old_path)
def test_collect_item_and_path(self): path = self.create_mediafile_fixture() mediafile = MediaFile(path) item, = self.add_item_fixtures() item.album = mediafile.album = 'AAA' item.tracktotal = mediafile.tracktotal = 5 item.title = 'TTT' mediafile.title = 'SSS' item.write() item.store() mediafile.save() out = self.run_with_output('--summarize', 'album:AAA', path) self.assertIn('album: AAA', out) self.assertIn('tracktotal: 5', out) self.assertIn('title: [various]', out)
def test_collect_item_and_path(self): path = self.create_mediafile_fixture() mediafile = MediaFile(path) item, = self.add_item_fixtures() item.album = mediafile.album = 'AAA' item.tracktotal = mediafile.tracktotal = 5 item.title = 'TTT' mediafile.title = 'SSS' item.write() item.store() mediafile.save() out = self.run_with_output('--summarize', 'album:AAA', path) self.assertIn('album: AAA', out) self.assertIn('tracktotal: 5', out) self.assertIn('title: [various]', out)
def test_collect_item_and_path(self): path = self.create_mediafile_fixture() mediafile = MediaFile(path) item, = self.add_item_fixtures() item.album = mediafile.album = "AAA" item.tracktotal = mediafile.tracktotal = 5 item.title = "TTT" mediafile.title = "SSS" item.write() item.store() mediafile.save() out = self.run_with_output("info", "--summarize", "album:AAA", path) self.assertIn(u"album: AAA", out) self.assertIn(u"tracktotal: 5", out) self.assertIn(u"title: [various]", out) self.remove_mediafile_fixtures()
def test_no_autotag_keeps_duplicate_album(self): config["import"]["autotag"] = False item = self.lib.items().get() self.assertEqual(item.title, u"t\xeftle 0") self.assertTrue(os.path.isfile(item.path)) # Imported item has the same artist and album as the one in the # library. import_file = os.path.join(self.importer.paths[0], "album 0", "track 0.mp3") import_file = MediaFile(import_file) import_file.artist = item["artist"] import_file.albumartist = item["artist"] import_file.album = item["album"] import_file.title = "new title" self.importer.default_resolution = self.importer.Resolution.REMOVE self.importer.run() self.assertTrue(os.path.isfile(item.path)) self.assertEqual(len(self.lib.albums()), 2) self.assertEqual(len(self.lib.items()), 2)
def test_no_autotag_keeps_duplicate_album(self): config['import']['autotag'] = False item = self.lib.items().get() self.assertEqual(item.title, u't\xeftle 0') self.assertTrue(os.path.isfile(item.path)) # Imported item has the same artist and album as the one in the # library. import_file = os.path.join(self.importer.paths[0], 'album 0', 'track 0.mp3') import_file = MediaFile(import_file) import_file.artist = item['artist'] import_file.albumartist = item['artist'] import_file.album = item['album'] import_file.title = 'new title' self.importer.default_resolution = self.importer.Resolution.REMOVE self.importer.run() self.assertTrue(os.path.isfile(item.path)) self.assertEqual(len(self.lib.albums()), 2) self.assertEqual(len(self.lib.items()), 2)
def modifyFile(self, path, title='a different title'): mediafile = MediaFile(path) mediafile.title = title mediafile.save()
def modifyFile(self, path, title='a different title'): mediafile = MediaFile(path) mediafile.title = title mediafile.save()