Skip to content

Commit 405726b

Browse files
committed
Merge pull request #1189 from mried/import-pretend-verbose
A more detailed output of the `--pretend` option
2 parents 4d84876 + bee0a5b commit 405726b

File tree

2 files changed

+43
-24
lines changed

2 files changed

+43
-24
lines changed

beets/importer.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,10 +1300,12 @@ def log_files(session, task):
13001300
"""A coroutine (pipeline stage) to log each file which will be imported
13011301
"""
13021302
if isinstance(task, SingletonImportTask):
1303-
log.info(displayable_path(task.item['path']))
1303+
log.info(
1304+
'Singleton: {0}'.format(displayable_path(task.item['path'])))
13041305
elif task.items:
1306+
log.info('Album {0}'.format(displayable_path(task.paths[0])))
13051307
for item in task.items:
1306-
log.info(displayable_path(item['path']))
1308+
log.info(' {0}'.format(displayable_path(item['path'])))
13071309

13081310

13091311
def group_albums(session):

test/test_importer.py

Lines changed: 39 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1542,7 +1542,8 @@ def __init__(self, method_name='runTest'):
15421542
def setUp(self):
15431543
super(ImportPretendTest, self).setUp()
15441544
self.setup_beets()
1545-
self._create_import_dir(1)
1545+
self.__create_import_dir()
1546+
self.__create_empty_import_dir()
15461547
self._setup_import_session()
15471548
config['import']['pretend'] = True
15481549
self.matcher = AutotagStub().install()
@@ -1552,45 +1553,61 @@ def tearDown(self):
15521553
self.teardown_beets()
15531554
self.matcher.restore()
15541555

1555-
def test_import_pretend(self):
1556+
def __create_import_dir(self):
1557+
self._create_import_dir(1)
15561558
resource_path = os.path.join(_common.RSRC, u'empty.mp3')
15571559
single_path = os.path.join(self.import_dir, u'track_2.mp3')
1558-
15591560
shutil.copy(resource_path, single_path)
1560-
import_files = [
1561+
self.import_paths = [
15611562
os.path.join(self.import_dir, u'the_album'),
15621563
single_path
15631564
]
1564-
self._setup_import_session(singletons=True)
1565-
self.importer.paths = import_files
1565+
self.import_files = [
1566+
displayable_path(
1567+
os.path.join(self.import_paths[0], u'track_1.mp3')),
1568+
displayable_path(single_path)
1569+
]
1570+
1571+
def __create_empty_import_dir(self):
1572+
path = os.path.join(self.temp_dir, 'empty')
1573+
os.makedirs(path)
1574+
self.empty_path = path
1575+
1576+
def __run(self, import_paths, singletons=True):
1577+
self._setup_import_session(singletons=singletons)
1578+
self.importer.paths = import_paths
15661579

15671580
with capture_log() as logs:
15681581
self.importer.run()
15691582

1583+
logs = [line for line in logs if not line.startswith('Sending event:')]
1584+
15701585
self.assertEqual(len(self.lib.items()), 0)
15711586
self.assertEqual(len(self.lib.albums()), 0)
15721587

1573-
self.assertEqual(len(logs), 3)
1574-
self.assertEqual(logs[1], os.path.join(import_files[0],
1575-
u'track_1.mp3'))
1576-
self.assertEqual(logs[2], import_files[1])
1588+
return logs
15771589

1578-
def test_import_pretend_empty(self):
1579-
path = os.path.join(self.temp_dir, 'empty')
1580-
os.makedirs(path)
1590+
def test_import_singletons_pretend(self):
1591+
logs = self.__run(self.import_paths)
15811592

1582-
self._setup_import_session(singletons=True)
1583-
self.importer.paths = [path]
1593+
self.assertEqual(logs, [
1594+
'Singleton: %s' % self.import_files[0],
1595+
'Singleton: %s' % self.import_paths[1]])
15841596

1585-
with capture_log() as logs:
1586-
self.importer.run()
1597+
def test_import_album_pretend(self):
1598+
logs = self.__run(self.import_paths, singletons=False)
15871599

1588-
self.assertEqual(len(self.lib.items()), 0)
1589-
self.assertEqual(len(self.lib.albums()), 0)
1600+
self.assertEqual(logs, [
1601+
'Album %s' % displayable_path(self.import_paths[0]),
1602+
' %s' % self.import_files[0],
1603+
'Album %s' % displayable_path(self.import_paths[1]),
1604+
' %s' % self.import_paths[1]])
1605+
1606+
def test_import_pretend_empty(self):
1607+
logs = self.__run([self.empty_path])
15901608

1591-
self.assertEqual(len(logs), 2)
1592-
self.assertEqual(logs[1], 'No files imported from {0}'
1593-
.format(displayable_path(path)))
1609+
self.assertEqual(logs, ['No files imported from {0}'
1610+
.format(displayable_path(self.empty_path))])
15941611

15951612

15961613
def suite():

0 commit comments

Comments
 (0)