|
22 | 22 |
|
23 | 23 |
|
24 | 24 | import os
|
| 25 | +import re |
25 | 26 | import unittest
|
26 | 27 | from unittest.mock import MagicMock
|
27 | 28 |
|
@@ -356,3 +357,57 @@ def test_guess_title_tracknumber(self):
|
356 | 357 | f._guess_tracknumber_and_title(metadata)
|
357 | 358 | self.assertEqual(metadata['tracknumber'], '1')
|
358 | 359 | self.assertEqual(metadata['title'], 'somefile')
|
| 360 | + |
| 361 | + |
| 362 | +class FileAdditionalFilesPatternsTest(PicardTestCase): |
| 363 | + |
| 364 | + def test_empty_patterns(self): |
| 365 | + self.set_config_values({ |
| 366 | + 'move_additional_files_pattern': ' ', |
| 367 | + }) |
| 368 | + f = File('/somepath/01 somefile.mp3') |
| 369 | + self.assertEqual(f._compile_move_additional_files_pattern(config), set()) |
| 370 | + |
| 371 | + def test_simple_patterns(self): |
| 372 | + self.set_config_values({ |
| 373 | + 'move_additional_files_pattern': 'cover.jpg', |
| 374 | + }) |
| 375 | + f = File('/somepath/01 somefile.mp3') |
| 376 | + expected = { |
| 377 | + (re.compile('(?s:cover\\.jpg)\\Z', re.IGNORECASE), False) |
| 378 | + } |
| 379 | + self.assertEqual(f._compile_move_additional_files_pattern(config), expected) |
| 380 | + |
| 381 | + def test_duplicated_patterns(self): |
| 382 | + self.set_config_values({ |
| 383 | + 'move_additional_files_pattern': 'cover.jpg cover.jpg', |
| 384 | + }) |
| 385 | + f = File('/somepath/01 somefile.mp3') |
| 386 | + expected = { |
| 387 | + (re.compile('(?s:cover\\.jpg)\\Z', re.IGNORECASE), False) |
| 388 | + } |
| 389 | + self.assertEqual(f._compile_move_additional_files_pattern(config), expected) |
| 390 | + |
| 391 | + def test_simple_hidden_patterns(self): |
| 392 | + self.set_config_values({ |
| 393 | + 'move_additional_files_pattern': 'cover.jpg .hidden', |
| 394 | + }) |
| 395 | + f = File('/somepath/01 somefile.mp3') |
| 396 | + expected = { |
| 397 | + (re.compile('(?s:cover\\.jpg)\\Z', re.IGNORECASE), False), |
| 398 | + (re.compile('(?s:\\.hidden)\\Z', re.IGNORECASE), True) |
| 399 | + } |
| 400 | + self.assertEqual(f._compile_move_additional_files_pattern(config), expected) |
| 401 | + |
| 402 | + def test_wildcard_patterns(self): |
| 403 | + self.set_config_values({ |
| 404 | + 'move_additional_files_pattern': 'c?ver.jpg .h?dden* *.jpg *.JPG', |
| 405 | + }) |
| 406 | + f = File('/somepath/01 somefile.mp3') |
| 407 | + expected = { |
| 408 | + (re.compile('(?s:c.ver\\.jpg)\\Z', re.IGNORECASE), False), |
| 409 | + (re.compile('(?s:\\.h.dden.*)\\Z', re.IGNORECASE), True), |
| 410 | + (re.compile('(?s:.*\\.jpg)\\Z', re.IGNORECASE), False), |
| 411 | + (re.compile('(?s:.*\\.JPG)\\Z', re.IGNORECASE), False) |
| 412 | + } |
| 413 | + self.assertEqual(f._compile_move_additional_files_pattern(config), expected) |
0 commit comments