Fix format and lint errors

This commit is contained in:
Vrihub 2025-09-16 17:31:42 +02:00
parent 6b1c3bc582
commit c30f9603eb
2 changed files with 46 additions and 45 deletions

View file

@ -25,8 +25,10 @@ from beets.util import displayable_path
# Filename field extraction patterns. # Filename field extraction patterns.
PATTERNS = [ PATTERNS = [
# Useful patterns. # Useful patterns.
(r"^(?P<track>\d+)\.?\s*-\s*(?P<artist>.+?)\s*-\s*(?P<title>.+?)" (
r"(\s*-\s*(?P<tag>.*))?$"), r"^(?P<track>\d+)\.?\s*-\s*(?P<artist>.+?)\s*-\s*(?P<title>.+?)"
r"(\s*-\s*(?P<tag>.*))?$"
),
r"^(?P<artist>.+?)\s*-\s*(?P<title>.+?)(\s*-\s*(?P<tag>.*))?$", r"^(?P<artist>.+?)\s*-\s*(?P<title>.+?)(\s*-\s*(?P<tag>.*))?$",
r"^(?P<track>\d+)\.?[\s\-_]+(?P<title>.+)$", r"^(?P<track>\d+)\.?[\s\-_]+(?P<title>.+)$",
r"^(?P<title>.+) by (?P<artist>.+)$", r"^(?P<title>.+) by (?P<artist>.+)$",
@ -160,7 +162,7 @@ class FromFilenamePlugin(plugins.BeetsPlugin):
# Look for useful information in the filenames. # Look for useful information in the filenames.
for pattern in PATTERNS: for pattern in PATTERNS:
self._log.debug("Trying pattern: {}".format(pattern)) self._log.debug(f"Trying pattern: {pattern}")
d = all_matches(names, pattern) d = all_matches(names, pattern)
if d: if d:
apply_matches(d, self._log) apply_matches(d, self._log)

View file

@ -12,27 +12,26 @@
# The above copyright notice and this permission notice shall be # The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software. # included in all copies or substantial portions of the Software.
"""Tests for the fromfilename plugin. """Tests for the fromfilename plugin."""
"""
import unittest import unittest
from unittest.mock import Mock from unittest.mock import Mock
from beetsplug import fromfilename from beetsplug import fromfilename
class FromfilenamePluginTest(unittest.TestCase): class FromfilenamePluginTest(unittest.TestCase):
def setUp(self): def setUp(self):
"""Create mock objects for import session and task.""" """Create mock objects for import session and task."""
self.session = Mock() self.session = Mock()
item1config = {'path': '', 'track': 0, 'artist': '', 'title': ''} item1config = {"path": "", "track": 0, "artist": "", "title": ""}
self.item1 = Mock(**item1config) self.item1 = Mock(**item1config)
item2config = {'path': '', 'track': 0, 'artist': '', 'title': ''} item2config = {"path": "", "track": 0, "artist": "", "title": ""}
self.item2 = Mock(**item2config) self.item2 = Mock(**item2config)
taskconfig = {'is_album': True, 'items': [self.item1, self.item2]} taskconfig = {"is_album": True, "items": [self.item1, self.item2]}
self.task = Mock(**taskconfig) self.task = Mock(**taskconfig)
def tearDown(self): def tearDown(self):
@ -47,12 +46,12 @@ class FromfilenamePluginTest(unittest.TestCase):
f = fromfilename.FromFilenamePlugin() f = fromfilename.FromFilenamePlugin()
f.filename_task(self.task, self.session) f.filename_task(self.task, self.session)
self.assertEqual(self.task.items[0].track, 1) assert self.task.items[0].track == 1
self.assertEqual(self.task.items[1].track, 2) assert self.task.items[1].track == 2
self.assertEqual(self.task.items[0].artist, "Artist Name") assert self.task.items[0].artist == "Artist Name"
self.assertEqual(self.task.items[1].artist, "Artist Name") assert self.task.items[1].artist == "Artist Name"
self.assertEqual(self.task.items[0].title, "Song One") assert self.task.items[0].title == "Song One"
self.assertEqual(self.task.items[1].title, "Song Two") assert self.task.items[1].title == "Song Two"
def test_sep_dash(self): def test_sep_dash(self):
"""Test filenames that use "-" as separator.""" """Test filenames that use "-" as separator."""
@ -63,12 +62,12 @@ class FromfilenamePluginTest(unittest.TestCase):
f = fromfilename.FromFilenamePlugin() f = fromfilename.FromFilenamePlugin()
f.filename_task(self.task, self.session) f.filename_task(self.task, self.session)
self.assertEqual(self.task.items[0].track, 1) assert self.task.items[0].track == 1
self.assertEqual(self.task.items[1].track, 2) assert self.task.items[1].track == 2
self.assertEqual(self.task.items[0].artist, "Artist_Name") assert self.task.items[0].artist == "Artist_Name"
self.assertEqual(self.task.items[1].artist, "Artist_Name") assert self.task.items[1].artist == "Artist_Name"
self.assertEqual(self.task.items[0].title, "Song_One") assert self.task.items[0].title == "Song_One"
self.assertEqual(self.task.items[1].title, "Song_Two") assert self.task.items[1].title == "Song_Two"
def test_track_title(self): def test_track_title(self):
"""Test filenames including track and title.""" """Test filenames including track and title."""
@ -79,12 +78,12 @@ class FromfilenamePluginTest(unittest.TestCase):
f = fromfilename.FromFilenamePlugin() f = fromfilename.FromFilenamePlugin()
f.filename_task(self.task, self.session) f.filename_task(self.task, self.session)
self.assertEqual(self.task.items[0].track, 1) assert self.task.items[0].track == 1
self.assertEqual(self.task.items[1].track, 2) assert self.task.items[1].track == 2
self.assertEqual(self.task.items[0].artist, "") assert self.task.items[0].artist == ""
self.assertEqual(self.task.items[1].artist, "") assert self.task.items[1].artist == ""
self.assertEqual(self.task.items[0].title, "Song_One") assert self.task.items[0].title == "Song_One"
self.assertEqual(self.task.items[1].title, "Song_Two") assert self.task.items[1].title == "Song_Two"
def test_title_by_artist(self): def test_title_by_artist(self):
"""Test filenames including title by artist.""" """Test filenames including title by artist."""
@ -95,12 +94,12 @@ class FromfilenamePluginTest(unittest.TestCase):
f = fromfilename.FromFilenamePlugin() f = fromfilename.FromFilenamePlugin()
f.filename_task(self.task, self.session) f.filename_task(self.task, self.session)
self.assertEqual(self.task.items[0].track, 0) assert self.task.items[0].track == 0
self.assertEqual(self.task.items[1].track, 0) assert self.task.items[1].track == 0
self.assertEqual(self.task.items[0].artist, "The Artist") assert self.task.items[0].artist == "The Artist"
self.assertEqual(self.task.items[1].artist, "The Artist") assert self.task.items[1].artist == "The Artist"
self.assertEqual(self.task.items[0].title, "Song One") assert self.task.items[0].title == "Song One"
self.assertEqual(self.task.items[1].title, "Song Two") assert self.task.items[1].title == "Song Two"
def test_track_only(self): def test_track_only(self):
"""Test filenames including only track.""" """Test filenames including only track."""
@ -111,12 +110,12 @@ class FromfilenamePluginTest(unittest.TestCase):
f = fromfilename.FromFilenamePlugin() f = fromfilename.FromFilenamePlugin()
f.filename_task(self.task, self.session) f.filename_task(self.task, self.session)
self.assertEqual(self.task.items[0].track, 1) assert self.task.items[0].track == 1
self.assertEqual(self.task.items[1].track, 2) assert self.task.items[1].track == 2
self.assertEqual(self.task.items[0].artist, "") assert self.task.items[0].artist == ""
self.assertEqual(self.task.items[1].artist, "") assert self.task.items[1].artist == ""
self.assertEqual(self.task.items[0].title, "01") assert self.task.items[0].title == "01"
self.assertEqual(self.task.items[1].title, "02") assert self.task.items[1].title == "02"
def test_title_only(self): def test_title_only(self):
"""Test filenames including only title.""" """Test filenames including only title."""
@ -127,12 +126,12 @@ class FromfilenamePluginTest(unittest.TestCase):
f = fromfilename.FromFilenamePlugin() f = fromfilename.FromFilenamePlugin()
f.filename_task(self.task, self.session) f.filename_task(self.task, self.session)
self.assertEqual(self.task.items[0].track, 0) assert self.task.items[0].track == 0
self.assertEqual(self.task.items[1].track, 0) assert self.task.items[1].track == 0
self.assertEqual(self.task.items[0].artist, "") assert self.task.items[0].artist == ""
self.assertEqual(self.task.items[1].artist, "") assert self.task.items[1].artist == ""
self.assertEqual(self.task.items[0].title, "Song One") assert self.task.items[0].title == "Song One"
self.assertEqual(self.task.items[1].title, "Song Two") assert self.task.items[1].title == "Song Two"
def suite(): def suite():