mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-11-04 22:40:29 +03:00
add apksigner, jarsigner, and keytool to relevant status JSON
This commit is contained in:
parent
903a7396b1
commit
7ec2a8ebb3
4 changed files with 67 additions and 0 deletions
|
|
@ -146,6 +146,9 @@ def status_update_json(generatedKeys, signedApks):
|
||||||
|
|
||||||
logging.debug(_('Outputting JSON'))
|
logging.debug(_('Outputting JSON'))
|
||||||
output = common.setup_status_output(start_timestamp)
|
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:
|
if generatedKeys:
|
||||||
output['generatedKeys'] = generatedKeys
|
output['generatedKeys'] = generatedKeys
|
||||||
if signedApks:
|
if signedApks:
|
||||||
|
|
|
||||||
|
|
@ -144,6 +144,9 @@ def status_update_json(apps, apks):
|
||||||
output['noPackages'] = []
|
output['noPackages'] = []
|
||||||
output['needsUpdate'] = []
|
output['needsUpdate'] = []
|
||||||
output['noUpdateCheck'] = []
|
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:
|
for appid in apps:
|
||||||
app = apps[appid]
|
app = apps[appid]
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
import inspect
|
import inspect
|
||||||
|
import json
|
||||||
import logging
|
import logging
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
|
|
@ -221,6 +222,34 @@ class PublishTest(unittest.TestCase):
|
||||||
self.assertTrue(pk.is_decrypted())
|
self.assertTrue(pk.is_decrypted())
|
||||||
self.assertEqual(jks.util.RSA_ENCRYPTION_OID, pk.algorithm_oid)
|
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__":
|
if __name__ == "__main__":
|
||||||
os.chdir(os.path.dirname(__file__))
|
os.chdir(os.path.dirname(__file__))
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import copy
|
||||||
import git
|
import git
|
||||||
import glob
|
import glob
|
||||||
import inspect
|
import inspect
|
||||||
|
import json
|
||||||
import logging
|
import logging
|
||||||
import optparse
|
import optparse
|
||||||
import os
|
import os
|
||||||
|
|
@ -23,6 +24,7 @@ from binascii import unhexlify
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from distutils.version import LooseVersion
|
from distutils.version import LooseVersion
|
||||||
from testcommon import TmpCwd
|
from testcommon import TmpCwd
|
||||||
|
from unittest import mock
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from yaml import CSafeLoader as SafeLoader
|
from yaml import CSafeLoader as SafeLoader
|
||||||
|
|
@ -63,6 +65,7 @@ DONATION_FIELDS = (
|
||||||
class Options:
|
class Options:
|
||||||
allow_disabled_algorithms = False
|
allow_disabled_algorithms = False
|
||||||
clean = False
|
clean = False
|
||||||
|
pretty = True
|
||||||
rename_apks = False
|
rename_apks = False
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1374,6 +1377,35 @@ class UpdateTest(unittest.TestCase):
|
||||||
fdroidserver.update._set_author_entry(app, key, f)
|
fdroidserver.update._set_author_entry(app, key, f)
|
||||||
self.assertIsNone(app.get(key))
|
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__":
|
if __name__ == "__main__":
|
||||||
os.chdir(os.path.dirname(__file__))
|
os.chdir(os.path.dirname(__file__))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue