PICARD-1926: Adjust test cases for new config structure

This commit is contained in:
Philipp Wolfer
2020-12-23 12:32:58 +01:00
parent bc7a393778
commit c0e6243a13
16 changed files with 52 additions and 43 deletions

View File

@@ -201,7 +201,7 @@ class CommonTests:
def setUp(self):
super().setUp()
config.setting = settings.copy()
self.set_config_values(settings)
if self.testfile:
_name, self.testfile_ext = os.path.splitext(self.testfile)
self.testfile_path = os.path.join('test', 'data', self.testfile)

View File

@@ -3,7 +3,7 @@
# Picard, the next-generation MusicBrainz tagger
#
# Copyright (C) 2018 Wieland Hoffmann
# Copyright (C) 2019 Philipp Wolfer
# Copyright (C) 2019-2020 Philipp Wolfer
# Copyright (C) 2020 Laurent Monin
#
# This program is free software; you can redistribute it and/or
@@ -29,7 +29,9 @@ from tempfile import (
mkdtemp,
mkstemp,
)
import threading
import unittest
from unittest.mock import Mock
from PyQt5 import QtCore
@@ -72,7 +74,28 @@ class PicardTestCase(unittest.TestCase):
self.tagger = FakeTagger()
QtCore.QObject.tagger = self.tagger
self.addCleanup(self.tagger.run_cleanup)
config.setting = {}
self.init_config()
@staticmethod
def init_config():
fake_config = Mock()
fake_config.setting = {}
fake_config.persist = {}
# Make config object available to current thread
config._thread_configs[threading.get_ident()] = fake_config
# Make config object available for legacy use
config.config = fake_config
config.setting = fake_config.setting
config.persist = fake_config.persist
@staticmethod
def set_config_values(setting=None, persist=None):
if setting:
for key, value in setting.items():
config.config.setting[key] = value
if persist:
for key, value in persist.items():
config.config.persist[key] = value
def mktmpdir(self, ignore_errors=False):
tmpdir = mkdtemp(suffix=self.__class__.__name__)

View File

@@ -27,7 +27,6 @@ import os
from test.picardtestcase import PicardTestCase
from picard import config
from picard.acoustid.json_helpers import parse_recording
from picard.mbjson import recording_to_metadata
from picard.metadata import Metadata
@@ -49,7 +48,7 @@ class AcoustIDTest(PicardTestCase):
self.init_test(self.filename)
def init_test(self, filename):
config.setting = settings.copy()
self.set_config_values(settings)
self.json_doc = None
with open(os.path.join('test', 'data', 'ws_data', filename), encoding='utf-8') as f:
self.json_doc = json.load(f)

View File

@@ -27,7 +27,6 @@ from unittest.mock import (
from test.picardtestcase import PicardTestCase
from picard import config
from picard.acoustid.manager import AcoustIDManager
from picard.file import File
@@ -55,10 +54,10 @@ def dummy_file(i):
class AcoustIDManagerTest(PicardTestCase):
def setUp(self):
super().setUp()
config.setting = {
self.set_config_values({
"clear_existing_tags": False,
"compare_ignore_tags": []
}
})
self.mock_api_helper = MagicMock()
self.mock_api_helper.submit_acoustid_fingerprints = Mock(wraps=mock_succeed_submission)
self.acoustidmanager = AcoustIDManager(self.mock_api_helper)

View File

@@ -26,7 +26,6 @@ from unittest.mock import MagicMock
from test.picardtestcase import PicardTestCase
from picard import config
from picard.webservice import WebService
from picard.webservice.api_helpers import (
APIHelper,
@@ -72,8 +71,9 @@ class APITest(PicardTestCase):
class MBAPITest(PicardTestCase):
def setUp(self):
super().setUp()
self.config = {'server_host': "mb.org", "server_port": 443}
config.setting = self.config.copy()
self.set_config_values(self.config)
self.ws = MagicMock(auto_spec=WebService)
self.api = MBAPIHelper(self.ws)

View File

@@ -171,7 +171,7 @@ class FileNamingTest(PicardTestCase):
def setUp(self):
super().setUp()
self.file = File('/somepath/somefile.mp3')
config.setting = {
self.set_config_values({
'ascii_filenames': False,
'clear_existing_tags': False,
'enabled_plugins': [],
@@ -180,7 +180,7 @@ class FileNamingTest(PicardTestCase):
'move_files': False,
'rename_files': False,
'windows_compatibility': True,
}
})
self.metadata = Metadata({
'album': 'somealbum',
'title': 'sometitle',

View File

@@ -46,7 +46,7 @@ class TestFileSystem(PicardTestCase):
super().setUp()
self.src_directory = self.mktmpdir()
self.tgt_directory = self.mktmpdir()
config.setting = settings.copy()
self.set_config_values(settings)
def _prepare_files(self, src_rel_path='', tgt_rel_path=''):
"""Prepare src files and tgt filenames for a test."""

View File

@@ -47,7 +47,7 @@ settings = {
class InterfaceColorsTest(PicardTestCase):
def setUp(self):
super().setUp()
config.setting = settings.copy()
self.set_config_values(settings)
def test_interface_colors(self):
for key in ('interface_colors', 'interface_colors_dark'):

View File

@@ -64,7 +64,7 @@ class MBJSONTest(PicardTestCase):
self.init_test(self.filename)
def init_test(self, filename):
config.setting = settings.copy()
self.set_config_values(settings)
self.json_doc = load_test_json(filename)

View File

@@ -29,7 +29,6 @@ from test.picardtestcase import (
)
from test.test_coverart_image import create_image
from picard import config
from picard.cluster import Cluster
from picard.coverart.image import CoverArtImage
from picard.file import File
@@ -74,7 +73,7 @@ class CommonTests:
def setUp(self):
super().setUp()
config.setting = settings.copy()
self.set_config_values(settings)
self.metadata = self.get_metadata_object()
self.metadata.length = 242
self.metadata["single1"] = "single1-value"

View File

@@ -31,7 +31,6 @@ from test.picardtestcase import (
load_test_json,
)
from picard import config
from picard.i18n import setup_gettext
from picard.releasegroup import ReleaseGroup
@@ -54,7 +53,7 @@ class ReleaseTest(PicardTestCase):
setup_gettext(self.localedir, 'C')
def test_1(self):
config.setting = settings.copy()
self.set_config_values(settings)
rlist = load_test_json('release_group_2.json')
r = ReleaseGroup(1)
r._parse_versions(rlist)
@@ -66,7 +65,7 @@ class ReleaseTest(PicardTestCase):
'5 / 2009 / GB / CD / label A / cat 123 / Digipak / specialx')
def test_2(self):
config.setting = settings.copy()
self.set_config_values(settings)
rlist = load_test_json('release_group_3.json')
r = ReleaseGroup(1)
r._parse_versions(rlist)
@@ -76,7 +75,7 @@ class ReleaseTest(PicardTestCase):
'5 / 2011 / FR / CD / label A / cat 123')
def test_3(self):
config.setting = settings.copy()
self.set_config_values(settings)
rlist = load_test_json('release_group_4.json')
r = ReleaseGroup(1)
r._parse_versions(rlist)

View File

@@ -37,7 +37,6 @@ from unittest.mock import MagicMock
from test.picardtestcase import PicardTestCase
from picard import config
from picard.cluster import Cluster
from picard.const import DEFAULT_FILE_NAMING_FORMAT
from picard.metadata import (
@@ -106,9 +105,9 @@ class ScriptParserTest(PicardTestCase):
def setUp(self):
super().setUp()
config.setting = {
self.set_config_values({
'enabled_plugins': '',
}
})
self.parser = ScriptParser()

View File

@@ -53,7 +53,7 @@ class ScriptToFilenameTest(PicardTestCase):
def setUp(self):
super().setUp()
config.setting = settings.copy()
self.set_config_values(settings)
def test_plain_filename(self):
metadata = Metadata()

View File

@@ -28,8 +28,8 @@ from picard.util.settingsoverride import SettingsOverride
class SettingsOverrideTest(PicardTestCase):
def setUp(self):
self.config = {'key1': 'origval1', 'key2': 'origval2'}
config.setting = self.config.copy()
super().setUp()
self.set_config_values({'key1': 'origval1', 'key2': 'origval2'})
self.new_settings = {'key1': 'newval2'}
def test_read_orig_settings(self):

View File

@@ -388,6 +388,7 @@ SimMatchTest = namedtuple('SimMatchTest', 'similarity name')
class SortBySimilarity(PicardTestCase):
def setUp(self):
super().setUp()
self.test_values = [
SimMatchTest(similarity=0.74, name='d'),
SimMatchTest(similarity=0.61, name='a'),
@@ -435,6 +436,7 @@ class GetQtEnum(PicardTestCase):
class LimitedJoin(PicardTestCase):
def setUp(self):
super().setUp()
self.list = [str(x) for x in range(0, 10)]
def test_1(self):

View File

@@ -55,17 +55,13 @@ class WebServiceTest(PicardTestCase):
def setUp(self):
super().setUp()
config.setting = {
self.set_config_values({
'use_proxy': False,
'server_host': '',
'network_transfer_timeout_seconds': 30,
}
})
self.ws = WebService()
def tearDown(self):
del self.ws
config.setting = {}
@patch.object(WebService, 'add_task')
def test_webservice_method_calls(self, mock_add_task):
host = "abc.xyz"
@@ -97,20 +93,16 @@ class WebServiceTaskTest(PicardTestCase):
def setUp(self):
super().setUp()
config.setting = {
self.set_config_values({
'use_proxy': False,
'network_transfer_timeout_seconds': 30,
}
})
self.ws = WebService()
# Patching the QTimers since they can only be started in a QThread
self.ws._timer_run_next_task = MagicMock()
self.ws._timer_count_pending_requests = MagicMock()
def tearDown(self):
del self.ws
config.setting = {}
def test_add_task(self):
mock_timer1 = self.ws._timer_run_next_task
@@ -215,10 +207,7 @@ class WebServiceProxyTest(PicardTestCase):
def setUp(self):
super().setUp()
config.setting = PROXY_SETTINGS.copy()
def tearDown(self):
config.setting = {}
self.set_config_values(PROXY_SETTINGS)
def test_proxy_setup(self):
proxy_types = [