mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-02 09:10:11 +02:00
add apksigner, jarsigner, and keytool to relevant status JSON
This commit is contained in:
parent
903a7396b1
commit
7ec2a8ebb3
@ -146,6 +146,9 @@ def status_update_json(generatedKeys, signedApks):
|
||||
|
||||
logging.debug(_('Outputting JSON'))
|
||||
output = common.setup_status_output(start_timestamp)
|
||||
output['apksigner'] = shutil.which(config.get('apksigner', ''))
|
||||
output['jarsigner'] = shutil.which(config.get('jarsigner', ''))
|
||||
output['keytool'] = shutil.which(config.get('keytool', ''))
|
||||
if generatedKeys:
|
||||
output['generatedKeys'] = generatedKeys
|
||||
if signedApks:
|
||||
|
@ -144,6 +144,9 @@ def status_update_json(apps, apks):
|
||||
output['noPackages'] = []
|
||||
output['needsUpdate'] = []
|
||||
output['noUpdateCheck'] = []
|
||||
output['apksigner'] = shutil.which(config.get('apksigner', ''))
|
||||
output['jarsigner'] = shutil.which(config.get('jarsigner', ''))
|
||||
output['keytool'] = shutil.which(config.get('keytool', ''))
|
||||
|
||||
for appid in apps:
|
||||
app = apps[appid]
|
||||
|
@ -11,6 +11,7 @@
|
||||
#
|
||||
|
||||
import inspect
|
||||
import json
|
||||
import logging
|
||||
import optparse
|
||||
import os
|
||||
@ -221,6 +222,34 @@ class PublishTest(unittest.TestCase):
|
||||
self.assertTrue(pk.is_decrypted())
|
||||
self.assertEqual(jks.util.RSA_ENCRYPTION_OID, pk.algorithm_oid)
|
||||
|
||||
def test_status_update_json(self):
|
||||
common.config = {}
|
||||
publish.config = {}
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
os.chdir(tmpdir)
|
||||
with mock.patch('sys.argv', ['fdroid publish', '']):
|
||||
publish.status_update_json([], [])
|
||||
with open('repo/status/publish.json') as fp:
|
||||
data = json.load(fp)
|
||||
self.assertTrue('apksigner' in data)
|
||||
|
||||
publish.config = {
|
||||
'apksigner': 'apksigner',
|
||||
}
|
||||
publish.status_update_json([], [])
|
||||
with open('repo/status/publish.json') as fp:
|
||||
data = json.load(fp)
|
||||
self.assertEqual(shutil.which(publish.config['apksigner']), data['apksigner'])
|
||||
|
||||
publish.config = {}
|
||||
common.fill_config_defaults(publish.config)
|
||||
publish.status_update_json([], [])
|
||||
with open('repo/status/publish.json') as fp:
|
||||
data = json.load(fp)
|
||||
self.assertEqual(publish.config.get('apksigner'), data['apksigner'])
|
||||
self.assertEqual(publish.config['jarsigner'], data['jarsigner'])
|
||||
self.assertEqual(publish.config['keytool'], data['keytool'])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.chdir(os.path.dirname(__file__))
|
||||
|
@ -6,6 +6,7 @@ import copy
|
||||
import git
|
||||
import glob
|
||||
import inspect
|
||||
import json
|
||||
import logging
|
||||
import optparse
|
||||
import os
|
||||
@ -23,6 +24,7 @@ from binascii import unhexlify
|
||||
from datetime import datetime
|
||||
from distutils.version import LooseVersion
|
||||
from testcommon import TmpCwd
|
||||
from unittest import mock
|
||||
|
||||
try:
|
||||
from yaml import CSafeLoader as SafeLoader
|
||||
@ -63,6 +65,7 @@ DONATION_FIELDS = (
|
||||
class Options:
|
||||
allow_disabled_algorithms = False
|
||||
clean = False
|
||||
pretty = True
|
||||
rename_apks = False
|
||||
|
||||
|
||||
@ -1374,6 +1377,35 @@ class UpdateTest(unittest.TestCase):
|
||||
fdroidserver.update._set_author_entry(app, key, f)
|
||||
self.assertIsNone(app.get(key))
|
||||
|
||||
def test_status_update_json(self):
|
||||
fdroidserver.common.config = {}
|
||||
fdroidserver.update.config = {}
|
||||
fdroidserver.update.options = Options
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
os.chdir(tmpdir)
|
||||
with mock.patch('sys.argv', ['fdroid update', '']):
|
||||
fdroidserver.update.status_update_json([], [])
|
||||
with open('repo/status/update.json') as fp:
|
||||
data = json.load(fp)
|
||||
self.assertTrue('apksigner' in data)
|
||||
|
||||
fdroidserver.update.config = {
|
||||
'apksigner': 'apksigner',
|
||||
}
|
||||
fdroidserver.update.status_update_json([], [])
|
||||
with open('repo/status/update.json') as fp:
|
||||
data = json.load(fp)
|
||||
self.assertEqual(shutil.which(fdroidserver.update.config['apksigner']), data['apksigner'])
|
||||
|
||||
fdroidserver.update.config = {}
|
||||
fdroidserver.common.fill_config_defaults(fdroidserver.update.config)
|
||||
fdroidserver.update.status_update_json([], [])
|
||||
with open('repo/status/update.json') as fp:
|
||||
data = json.load(fp)
|
||||
self.assertEqual(fdroidserver.update.config.get('apksigner'), data['apksigner'])
|
||||
self.assertEqual(fdroidserver.update.config['jarsigner'], data['jarsigner'])
|
||||
self.assertEqual(fdroidserver.update.config['keytool'], data['keytool'])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
os.chdir(os.path.dirname(__file__))
|
||||
|
Loading…
Reference in New Issue
Block a user