From ee54dbce87c6cab9d74f83a22131c0940814e485 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 3 Jun 2020 18:34:26 +0200 Subject: [PATCH] scanner: safely check options, for things using this API https://gitlab.com/fdroid/fdroidserver/-/issues/771#note_353495799 --- fdroidserver/scanner.py | 4 ++-- tests/build.TestCase | 1 - tests/scanner.TestCase | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/fdroidserver/scanner.py b/fdroidserver/scanner.py index 034d4f3c..a5965b2c 100644 --- a/fdroidserver/scanner.py +++ b/fdroidserver/scanner.py @@ -172,9 +172,9 @@ def scan_source(build_dir, build=metadata.Build()): return ignoreproblem(what, path_in_build_dir) if todelete(path_in_build_dir): return removeproblem(what, path_in_build_dir, filepath) - if options.json: + if options and options.json: json_per_build['errors'].append([what, path_in_build_dir]) - if not options.json or options.verbose: + if options and (options.verbose or not options.json): logging.error('Found %s at %s' % (what, path_in_build_dir)) return 1 diff --git a/tests/build.TestCase b/tests/build.TestCase index 033c6411..0495bb79 100755 --- a/tests/build.TestCase +++ b/tests/build.TestCase @@ -132,7 +132,6 @@ class BuildTest(unittest.TestCase): fdroidserver.common.fill_config_defaults(config) fdroidserver.common.config = config fdroidserver.build.options = mock.Mock() - fdroidserver.build.options.json = False fdroidserver.build.options.notarball = True fdroidserver.build.options.skipscan = False diff --git a/tests/scanner.TestCase b/tests/scanner.TestCase index fc10a8af..6612cb21 100755 --- a/tests/scanner.TestCase +++ b/tests/scanner.TestCase @@ -36,7 +36,7 @@ class ScannerTest(unittest.TestCase): os.chdir(self.basedir) def test_scan_source_files(self): - fdroidserver.scanner.options = type('', (), {})() + fdroidserver.scanner.options = mock.Mock() fdroidserver.scanner.options.json = False source_files = os.path.join(self.basedir, 'source-files') projects = {