mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-02 09:10:11 +02:00
add keep_when_not_allowed config/option
This commit is contained in:
parent
386fb55b99
commit
1e4e2489aa
@ -826,6 +826,15 @@ def force_halt_build(timeout):
|
||||
vm.destroy()
|
||||
|
||||
|
||||
def keep_when_not_allowed():
|
||||
"""Control if APKs signed by keys not in AllowedAPKSigningKeys are removed."""
|
||||
return (
|
||||
(options is not None and options.keep_when_not_allowed)
|
||||
or (config is not None and config.get('keep_when_not_allowed'))
|
||||
or common.default_config['keep_when_not_allowed']
|
||||
)
|
||||
|
||||
|
||||
def parse_commandline():
|
||||
"""Parse the command line.
|
||||
|
||||
@ -863,6 +872,8 @@ def parse_commandline():
|
||||
help=_("Force build of disabled apps, and carries on regardless of scan problems. Only allowed in test mode."))
|
||||
parser.add_argument("-a", "--all", action="store_true", default=False,
|
||||
help=_("Build all applications available"))
|
||||
parser.add_argument("--keep-when-not-allowed", default=False, action="store_true",
|
||||
help=argparse.SUPPRESS)
|
||||
parser.add_argument("-w", "--wiki", default=False, action="store_true",
|
||||
help=argparse.SUPPRESS)
|
||||
metadata.add_metadata_arguments(parser)
|
||||
@ -1121,7 +1132,7 @@ def main():
|
||||
logging.warn(_('AllowedAPKSigningKeys missing '
|
||||
'but reference binary supplied'))
|
||||
elif used_key not in expected_keys:
|
||||
if options.test:
|
||||
if options.test or keep_when_not_allowed():
|
||||
logging.warning(_('Keeping failed build "{apkfilename}"')
|
||||
.format(apkfilename=unsigned_apk))
|
||||
else:
|
||||
|
@ -128,6 +128,7 @@ default_config = {
|
||||
'gradle': os.path.join(FDROID_PATH, 'gradlew-fdroid'),
|
||||
'sync_from_local_copy_dir': False,
|
||||
'allow_disabled_algorithms': False,
|
||||
'keep_when_not_allowed': False,
|
||||
'per_app_repos': False,
|
||||
'make_current_version_link': False,
|
||||
'current_version_name_source': 'Name',
|
||||
|
@ -40,6 +40,10 @@ class FakeProcess:
|
||||
print('FakeFDroidPopen', args, kwargs)
|
||||
|
||||
|
||||
class Options:
|
||||
keep_when_not_allowed = False
|
||||
|
||||
|
||||
class BuildTest(unittest.TestCase):
|
||||
'''fdroidserver/build.py'''
|
||||
|
||||
@ -51,6 +55,7 @@ class BuildTest(unittest.TestCase):
|
||||
os.chdir(self.basedir)
|
||||
fdroidserver.common.config = None
|
||||
fdroidserver.build.config = None
|
||||
fdroidserver.build.options = None
|
||||
self._td = mkdtemp()
|
||||
self.testdir = self._td.name
|
||||
|
||||
@ -604,7 +609,7 @@ class BuildTest(unittest.TestCase):
|
||||
sdk_path = os.path.join(self.testdir, 'android-sdk')
|
||||
self.create_fake_android_home(sdk_path)
|
||||
with open('config.yml', 'w') as fp:
|
||||
yaml.dump({'sdk_path': sdk_path}, fp)
|
||||
yaml.dump({'sdk_path': sdk_path, 'keep_when_not_allowed': True}, fp)
|
||||
os.chmod('config.yml', 0o600)
|
||||
fdroidserver.common.build = fdroidserver.common.read_config()
|
||||
|
||||
@ -920,6 +925,51 @@ class BuildTest(unittest.TestCase):
|
||||
test_flag = ('--skip-scan', True)
|
||||
fdroidserver.build.build_server(app, build, vcs, '', '', '', False)
|
||||
|
||||
def test_keep_when_not_allowed_default(self):
|
||||
self.assertFalse(fdroidserver.build.keep_when_not_allowed())
|
||||
|
||||
def test_keep_when_not_allowed_config_true(self):
|
||||
fdroidserver.build.config = {'keep_when_not_allowed': True}
|
||||
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||
|
||||
def test_keep_when_not_allowed_config_false(self):
|
||||
fdroidserver.build.config = {'keep_when_not_allowed': False}
|
||||
self.assertFalse(fdroidserver.build.keep_when_not_allowed())
|
||||
|
||||
def test_keep_when_not_allowed_options_true(self):
|
||||
fdroidserver.build.options = Options
|
||||
fdroidserver.build.options.keep_when_not_allowed = True
|
||||
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||
|
||||
def test_keep_when_not_allowed_options_false(self):
|
||||
fdroidserver.build.options = Options
|
||||
fdroidserver.build.options.keep_when_not_allowed = False
|
||||
self.assertFalse(fdroidserver.build.keep_when_not_allowed())
|
||||
|
||||
def test_keep_when_not_allowed_options_true_override_config(self):
|
||||
fdroidserver.build.options = Options
|
||||
fdroidserver.build.options.keep_when_not_allowed = True
|
||||
fdroidserver.build.config = {'keep_when_not_allowed': False}
|
||||
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||
|
||||
def test_keep_when_not_allowed_options_default_does_not_override(self):
|
||||
fdroidserver.build.options = Options
|
||||
fdroidserver.build.options.keep_when_not_allowed = False
|
||||
fdroidserver.build.config = {'keep_when_not_allowed': True}
|
||||
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||
|
||||
def test_keep_when_not_allowed_all_true(self):
|
||||
fdroidserver.build.options = Options
|
||||
fdroidserver.build.options.keep_when_not_allowed = True
|
||||
fdroidserver.build.config = {'keep_when_not_allowed': True}
|
||||
self.assertTrue(fdroidserver.build.keep_when_not_allowed())
|
||||
|
||||
def test_keep_when_not_allowed_all_false(self):
|
||||
fdroidserver.build.options = Options
|
||||
fdroidserver.build.options.keep_when_not_allowed = False
|
||||
fdroidserver.build.config = {'keep_when_not_allowed': False}
|
||||
self.assertFalse(fdroidserver.build.keep_when_not_allowed())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.chdir(os.path.dirname(__file__))
|
||||
|
Loading…
Reference in New Issue
Block a user