Centralize db setup on disk

This commit is contained in:
Šarūnas Nejus 2024-07-06 20:14:56 +01:00
parent 7d7f16395c
commit 16cf8dd937
No known key found for this signature in database
GPG key ID: DD28F6704DBE3435
6 changed files with 23 additions and 15 deletions

View file

@ -151,9 +151,11 @@ class TestHelper(_common.Assertions):
fixtures.
"""
db_on_disk: ClassVar[bool] = False
# TODO automate teardown through hook registration
def setup_beets(self, disk=False):
def setup_beets(self):
"""Setup pristine global configuration and library for testing.
Sets ``beets.config`` so we can safely use any functionality
@ -199,7 +201,7 @@ class TestHelper(_common.Assertions):
os.mkdir(syspath(self.libdir))
self.config["directory"] = os.fsdecode(self.libdir)
if disk:
if self.db_on_disk:
dbpath = util.bytestring_path(self.config["library"].as_filename())
else:
dbpath = ":memory:"
@ -538,8 +540,8 @@ class ImportHelper:
importer: importer.ImportSession
def setup_beets(self, disk=False):
super().setup_beets(disk)
def setup_beets(self):
super().setup_beets()
self.lib.path_formats = [
("default", os.path.join("$artist", "$album", "$title")),
("singleton:true", os.path.join("singletons", "$title")),

View file

@ -85,13 +85,13 @@ class ConvertMixin:
class ConvertTestCase(BeetsTestCase, ConvertMixin):
pass
db_on_disk = True
@_common.slow_test()
class ImportConvertTest(ConvertTestCase):
def setUp(self):
self.setup_beets(disk=True) # Converter is threaded
super().setUp()
self.importer = self.create_importer()
self.load_plugins("convert")
@ -169,7 +169,7 @@ class ConvertCommand:
@_common.slow_test()
class ConvertCliTest(ConvertTestCase, ConvertCommand):
def setUp(self):
self.setup_beets(disk=True) # Converter is threaded
super().setUp()
self.album = self.add_album_fixture(ext="ogg")
self.item = self.album.items()[0]
self.load_plugins("convert")
@ -318,7 +318,7 @@ class NeverConvertLossyFilesTest(ConvertTestCase, ConvertCommand):
"""Test the effect of the `never_convert_lossy_files` option."""
def setUp(self):
self.setup_beets(disk=True) # Converter is threaded
super().setUp()
self.load_plugins("convert")
self.convert_dest = os.path.join(self.temp_dir, b"convert_dest")

View file

@ -278,8 +278,10 @@ def start_server(args, assigned_port, listener_patch):
class BPDTestHelper(BeetsTestCase):
db_on_disk = True
def setUp(self):
self.setup_beets(disk=True)
super().setUp()
self.load_plugins("bpd")
self.item1 = self.add_item(
title="Track One Title",

View file

@ -53,13 +53,14 @@ def reset_replaygain(item):
class ReplayGainTestCase(BeetsTestCase):
db_on_disk = True
backend: ClassVar[str]
def setUp(self):
# Implemented by Mixins, see above. This may decide to skip the test.
self.test_backend()
self.setup_beets(disk=True)
super().setUp()
self.config["replaygain"]["backend"] = self.backend
try:

View file

@ -45,8 +45,10 @@ from beets.util import bytestring_path, displayable_path, syspath
class ScrubbedImportTest(ImportTestCase):
db_on_disk = True
def setUp(self):
self.setup_beets(disk=True)
super().setUp()
self.load_plugins("scrub")
self._create_import_dir(2)
self._setup_import_session(autotag=False)
@ -100,8 +102,10 @@ class ScrubbedImportTest(ImportTestCase):
@_common.slow_test()
class NonAutotaggedImportTest(ImportTestCase):
db_on_disk = True
def setUp(self):
self.setup_beets(disk=True)
super().setUp()
self._create_import_dir(2)
self._setup_import_session(autotag=False)

View file

@ -168,6 +168,8 @@ class ConcurrentEventsTest(BeetsTestCase):
LoggingLevelTest.
"""
db_on_disk = True
class DummyPlugin(plugins.BeetsPlugin):
def __init__(self, test_case):
plugins.BeetsPlugin.__init__(self, "dummy")
@ -204,9 +206,6 @@ class ConcurrentEventsTest(BeetsTestCase):
except Exception as e:
self.exc = e
def setUp(self):
self.setup_beets(disk=True)
def test_concurrent_events(self):
dp = self.DummyPlugin(self)