Test _get_additional_files_moves()

This commit is contained in:
Laurent Monin
2021-11-09 23:15:23 +01:00
parent 4e9aa419ba
commit 54ba988666

View File

@@ -77,7 +77,7 @@ def prepare_files(src_dir, dst_dir, src_files=None, dst_files=None, src_rel_path
return src, dst
class TestFileSystem(PicardTestCase):
class SampleFileSystem(PicardTestCase):
settings = {
'enabled_plugins': '',
'move_files': True,
@@ -85,6 +85,18 @@ class TestFileSystem(PicardTestCase):
'move_additional_files_pattern': 'cover.jpg',
}
src_files = {
'test.mp3': None,
'cover.jpg': 'mb.jpg',
'.hidden.jpg': 'mb.jpg',
}
dst_files = {
'test.mp3',
'cover.jpg',
'.hidden.jpg',
}
def setUp(self):
super().setUp()
self.src_directory = self.mktmpdir()
@@ -93,21 +105,10 @@ class TestFileSystem(PicardTestCase):
def _prepare_files(self, src_rel_path='', dst_rel_path=''):
"""Prepare src files and dst filenames for a test."""
src_files = {
'test.mp3': None,
'cover.jpg': 'mb.jpg',
'.hidden.jpg': 'mb.jpg',
}
dst_files = {
'test.mp3',
'cover.jpg',
'.hidden.jpg',
}
return prepare_files(
self.src_directory, self.dst_directory,
src_files, dst_files,
self.src_files, self.dst_files,
src_rel_path=src_rel_path,
dst_rel_path=dst_rel_path
)
@@ -118,6 +119,87 @@ class TestFileSystem(PicardTestCase):
def _assertNoFile(self, path):
self.assertFalse(os.path.isfile(path))
class TestAdditionalFilesMoves(SampleFileSystem):
src_files = {
'test.mp3': None,
'cover1.jpg': 'mb.jpg',
'cover2.JPG': 'mb.jpg',
'.hidden1.jpg': 'mb.jpg',
'.hidden2.JPG': 'mb.jpg',
}
dst_files = list(src_files)
def test_no_pattern(self):
src, dst = self._prepare_files()
f = picard.formats.open_(src['test.mp3'])
moves = set(f._get_additional_files_moves(self.src_directory, self.dst_directory, ()))
expected = set()
self.assertEqual(moves, expected)
def test_no_src_dir(self):
src, dst = self._prepare_files()
f = picard.formats.open_(src['test.mp3'])
patterns = f._compile_move_additional_files_pattern('*.jpg')
with self.assertRaises(FileNotFoundError):
moves = set(f._get_additional_files_moves(self.src_directory + 'donotexist', self.dst_directory, patterns))
del moves
def test_no_dst_dir(self):
src, dst = self._prepare_files()
f = picard.formats.open_(src['test.mp3'])
patterns = f._compile_move_additional_files_pattern('*.jpg')
suffix = 'donotexist'
moves = set(f._get_additional_files_moves(self.src_directory, self.dst_directory + suffix, patterns))
expected = {
(src['cover1.jpg'], os.path.join(self.dst_directory + suffix, 'cover1.jpg')),
(src['cover2.JPG'], os.path.join(self.dst_directory + suffix, 'cover2.JPG')),
}
self.assertEqual(moves, expected)
def test_all_jpg_no_hidden(self):
src, dst = self._prepare_files()
f = picard.formats.open_(src['test.mp3'])
patterns = f._compile_move_additional_files_pattern('*.j?g *.jpg')
moves = set(f._get_additional_files_moves(self.src_directory, self.dst_directory, patterns))
expected = {
(src['cover1.jpg'], dst['cover1.jpg']),
(src['cover2.JPG'], dst['cover2.JPG']),
}
self.assertEqual(moves, expected)
def test_all_hidden_jpg(self):
src, dst = self._prepare_files()
f = picard.formats.open_(src['test.mp3'])
patterns = f._compile_move_additional_files_pattern('.*.j?g .*.jpg')
moves = set(f._get_additional_files_moves(self.src_directory, self.dst_directory, patterns))
expected = {
(src['.hidden1.jpg'], dst['.hidden1.jpg']),
(src['.hidden2.JPG'], dst['.hidden2.JPG']),
}
self.assertEqual(moves, expected)
def test_one_only_jpg(self):
src, dst = self._prepare_files()
f = picard.formats.open_(src['test.mp3'])
patterns = f._compile_move_additional_files_pattern('.*1.j?g *1.jpg')
moves = set(f._get_additional_files_moves(self.src_directory, self.dst_directory, patterns))
expected = {
(src['.hidden1.jpg'], dst['.hidden1.jpg']),
(src['cover1.jpg'], dst['cover1.jpg']),
}
self.assertEqual(moves, expected)
class TestFileSystem(SampleFileSystem):
def _move_additional_files(self, src, dst):
f = picard.formats.open_(src['test.mp3'])
f._move_additional_files(src['test.mp3'], dst['test.mp3'], config)