From 93a8d83365b0c4345d781b42b0caa8708a841731 Mon Sep 17 00:00:00 2001 From: Laurent Monin Date: Tue, 9 Nov 2021 21:43:40 +0100 Subject: [PATCH] Make _compile_move_additional_files_pattern() a static method and simplify tests - do not pass config but the patterns string - make it a static method (it doesn't need self anyway) - simplify tests accordingly --- picard/file.py | 8 +++++--- test/test_file.py | 41 +++++++++++------------------------------ 2 files changed, 16 insertions(+), 33 deletions(-) diff --git a/picard/file.py b/picard/file.py index 9cd445966..b19a0f7f6 100644 --- a/picard/file.py +++ b/picard/file.py @@ -551,14 +551,16 @@ class File(QtCore.QObject, Item): new_path = os.path.dirname(new_filename) old_path = os.path.dirname(old_filename) if new_path != old_path: - patterns = self._compile_move_additional_files_pattern(config) + patterns_string = config.setting["move_additional_files_pattern"] + patterns = self._compile_move_additional_files_pattern(patterns_string) moves = self._get_additional_files_moves(old_path, new_path, patterns) self._apply_additional_files_moves(moves) - def _compile_move_additional_files_pattern(self, config): + @staticmethod + def _compile_move_additional_files_pattern(patterns_string): return { (re.compile(fnmatch.translate(pattern), re.IGNORECASE), pattern.startswith('.')) - for pattern in set(config.setting["move_additional_files_pattern"].lower().split()) + for pattern in set(patterns_string.lower().split()) } def _get_additional_files_moves(self, old_path, new_path, patterns): diff --git a/test/test_file.py b/test/test_file.py index c94143c7e..68f41a054 100644 --- a/test/test_file.py +++ b/test/test_file.py @@ -362,62 +362,43 @@ class FileGuessTracknumberAndTitleTest(PicardTestCase): class FileAdditionalFilesPatternsTest(PicardTestCase): def test_empty_patterns(self): - self.set_config_values({ - 'move_additional_files_pattern': ' ', - }) - f = File('/somepath/01 somefile.mp3') - self.assertEqual(f._compile_move_additional_files_pattern(config), set()) + self.assertEqual(File._compile_move_additional_files_pattern(' '), set()) def test_simple_patterns(self): - self.set_config_values({ - 'move_additional_files_pattern': 'cover.jpg', - }) - f = File('/somepath/01 somefile.mp3') + pattern = 'cover.jpg' expected = { (re.compile('(?s:cover\\.jpg)\\Z', re.IGNORECASE), False) } - self.assertEqual(f._compile_move_additional_files_pattern(config), expected) + self.assertEqual(File._compile_move_additional_files_pattern(pattern), expected) def test_whitespaces_patterns(self): - self.set_config_values({ - 'move_additional_files_pattern': " a \n b ", - }) - f = File('/somepath/01 somefile.mp3') + pattern = " a \n b " expected = { (re.compile('(?s:a)\\Z', re.IGNORECASE), False), (re.compile('(?s:b)\\Z', re.IGNORECASE), False), } - self.assertEqual(f._compile_move_additional_files_pattern(config), expected) + self.assertEqual(File._compile_move_additional_files_pattern(pattern), expected) def test_duplicated_patterns(self): - self.set_config_values({ - 'move_additional_files_pattern': 'cover.jpg cover.jpg', - }) - f = File('/somepath/01 somefile.mp3') + pattern = 'cover.jpg cover.jpg COVER.JPG' expected = { (re.compile('(?s:cover\\.jpg)\\Z', re.IGNORECASE), False) } - self.assertEqual(f._compile_move_additional_files_pattern(config), expected) + self.assertEqual(File._compile_move_additional_files_pattern(pattern), expected) def test_simple_hidden_patterns(self): - self.set_config_values({ - 'move_additional_files_pattern': 'cover.jpg .hidden', - }) - f = File('/somepath/01 somefile.mp3') + pattern = 'cover.jpg .hidden' expected = { (re.compile('(?s:cover\\.jpg)\\Z', re.IGNORECASE), False), (re.compile('(?s:\\.hidden)\\Z', re.IGNORECASE), True) } - self.assertEqual(f._compile_move_additional_files_pattern(config), expected) + self.assertEqual(File._compile_move_additional_files_pattern(pattern), expected) def test_wildcard_patterns(self): - self.set_config_values({ - 'move_additional_files_pattern': 'c?ver.jpg .h?dden* *.jpg *.JPG', - }) - f = File('/somepath/01 somefile.mp3') + pattern = 'c?ver.jpg .h?dden* *.jpg *.JPG' expected = { (re.compile('(?s:c.ver\\.jpg)\\Z', re.IGNORECASE), False), (re.compile('(?s:\\.h.dden.*)\\Z', re.IGNORECASE), True), (re.compile('(?s:.*\\.jpg)\\Z', re.IGNORECASE), False), } - self.assertEqual(f._compile_move_additional_files_pattern(config), expected) + self.assertEqual(File._compile_move_additional_files_pattern(pattern), expected)