From b43faa8c7584295b02bc02bd1ef080b065c0be1d Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Sat, 22 Nov 2025 23:06:40 +0100 Subject: [PATCH] lint: port to common.config, remove local config var --- fdroidserver/lint.py | 22 ++++++++-------------- tests/test_lint.py | 23 ++++++----------------- 2 files changed, 14 insertions(+), 31 deletions(-) diff --git a/fdroidserver/lint.py b/fdroidserver/lint.py index 75d4ea4f..2dc66a4d 100644 --- a/fdroidserver/lint.py +++ b/fdroidserver/lint.py @@ -28,8 +28,6 @@ from fdroidserver._yaml import yaml from . import _, common, metadata, rewritemeta -config = None - def enforce_https(domain): return ( @@ -295,11 +293,11 @@ def load_categories_config(): global CATEGORIES_KEYS k = common.CATEGORIES_CONFIG_NAME if not CATEGORIES_KEYS: - if config and k in config: - CATEGORIES_KEYS = config[k] + if common.config and k in common.config: + CATEGORIES_KEYS = common.config[k] else: - config[k] = common.load_localized_config(k, 'repo') - CATEGORIES_KEYS = list(config[k].keys()) + common.config[k] = common.load_localized_config(k, 'repo') + CATEGORIES_KEYS = list(common.config[k].keys()) def check_regexes(app): @@ -385,7 +383,7 @@ def check_ucm_tags(app): def check_char_limits(app): - limits = config['char_limits'] + limits = common.config['char_limits'] if len(app.Summary) > limits['summary']: yield _("Summary of length {length} is over the {limit} char limit").format( @@ -565,8 +563,8 @@ def check_license_tag(app): e.g. `lint_licenses: ` or `lint_licenses: []` """ - if 'lint_licenses' in config: - lint_licenses = config['lint_licenses'] + if 'lint_licenses' in common.config: + lint_licenses = common.config['lint_licenses'] if lint_licenses is None: return else: @@ -717,7 +715,6 @@ def check_antiFeatures(app): def check_for_unsupported_metadata_files(basedir=""): """Check whether any non-metadata files are in metadata/.""" basedir = Path(basedir) - global config if not (basedir / 'metadata').exists(): return False @@ -944,9 +941,6 @@ def lint_config(arg): def main(): - global config - - # Parse command line... parser = ArgumentParser() common.setup_global_opts(parser) parser.add_argument( @@ -972,7 +966,7 @@ def main(): options = common.parse_args(parser) metadata.warnings_action = options.W - config = common.read_config() + common.get_config() load_antiFeatures_config() load_categories_config() diff --git a/tests/test_lint.py b/tests/test_lint.py index 7f918d47..970fc638 100755 --- a/tests/test_lint.py +++ b/tests/test_lint.py @@ -25,7 +25,6 @@ class SetUpTearDownMixin: def setUp(self): os.chdir(basedir) fdroidserver.common.config = None - fdroidserver.lint.config = None fdroidserver.lint.CATEGORIES_KEYS = None self._td = mkdtemp() self.testdir = self._td.name @@ -62,7 +61,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config app = { 'Name': 'Bad App', @@ -80,7 +78,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config app = { 'Name': 'My App', @@ -184,7 +181,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config app = fdroidserver.metadata.App() app.id = 'fake.app' @@ -238,7 +234,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config app = fdroidserver.metadata.App() app.Name = 'Bad App' @@ -284,7 +279,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config app = fdroidserver.metadata.App() app.License = "GPL-3.0-or-later" @@ -299,7 +293,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config app = fdroidserver.metadata.App() app.License = "Adobe-2006" @@ -314,7 +307,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config config['lint_licenses'] = ['fancy-license', 'GPL-3.0-or-later'] app = fdroidserver.metadata.App() @@ -330,7 +322,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config config['lint_licenses'] = ['fancy-license', 'GPL-3.0-or-later'] app = fdroidserver.metadata.App() @@ -346,7 +337,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config config['lint_licenses'] = [] app = fdroidserver.metadata.App() @@ -362,7 +352,6 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): config = dict() fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config - fdroidserver.lint.config = config config['lint_licenses'] = None app = fdroidserver.metadata.App() @@ -375,7 +364,7 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): self.assertFalse(anywarns) def test_check_categories_in_config(self): - fdroidserver.lint.config = { + fdroidserver.common.config = { fdroidserver.common.CATEGORIES_CONFIG_NAME: ['InConfig'] } fdroidserver.lint.load_categories_config() @@ -383,19 +372,19 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): self.assertEqual(0, len(list(fdroidserver.lint.check_categories(app)))) def test_check_categories_not_in_config(self): - fdroidserver.lint.config = dict() + fdroidserver.common.config = dict() fdroidserver.lint.load_categories_config() app = fdroidserver.metadata.App({'Categories': ['NotInConfig']}) self.assertEqual(1, len(list(fdroidserver.lint.check_categories(app)))) def test_check_categories_empty_is_error(self): - fdroidserver.lint.config = {fdroidserver.common.CATEGORIES_CONFIG_NAME: []} + fdroidserver.common.config = {fdroidserver.common.CATEGORIES_CONFIG_NAME: []} fdroidserver.lint.load_categories_config() app = fdroidserver.metadata.App({'Categories': ['something']}) self.assertEqual(1, len(list(fdroidserver.lint.check_categories(app)))) def test_check_categories_old_hardcoded_not_defined(self): - fdroidserver.lint.config = { + fdroidserver.common.config = { fdroidserver.common.CATEGORIES_CONFIG_NAME: ['foo', 'bar'] } fdroidserver.lint.load_categories_config() @@ -406,7 +395,7 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): """In config.yml, categories is a list.""" os.chdir(self.testdir) fdroidserver.common.write_config_file('categories: [foo, bar]\n') - fdroidserver.lint.config = fdroidserver.common.read_config() + fdroidserver.common.read_config() fdroidserver.lint.load_categories_config() self.assertEqual(fdroidserver.lint.CATEGORIES_KEYS, ['foo', 'bar']) app = fdroidserver.metadata.App({'Categories': ['bar']}) @@ -417,7 +406,7 @@ class LintTest(SetUpTearDownMixin, unittest.TestCase): os.chdir(self.testdir) os.mkdir('config') Path('config/categories.yml').write_text('{foo: {name: foo}, bar: {name: bar}}') - fdroidserver.lint.config = fdroidserver.common.read_config() + fdroidserver.common.read_config() fdroidserver.lint.load_categories_config() self.assertEqual(fdroidserver.lint.CATEGORIES_KEYS, ['foo', 'bar']) app = fdroidserver.metadata.App({'Categories': ['bar']})