mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-05 18:50:09 +02:00
Merge branch 'get_apk_id_api_call' into 'master'
allow common.get_apk_id() to be used in the API See merge request fdroid/fdroidserver!1118
This commit is contained in:
commit
2d0645c1c4
@ -2689,9 +2689,11 @@ def get_apk_id(apkfile):
|
|||||||
try:
|
try:
|
||||||
return get_apk_id_androguard(apkfile)
|
return get_apk_id_androguard(apkfile)
|
||||||
except zipfile.BadZipFile as e:
|
except zipfile.BadZipFile as e:
|
||||||
|
if config and 'aapt' in config:
|
||||||
logging.error(apkfile + ': ' + str(e))
|
logging.error(apkfile + ': ' + str(e))
|
||||||
if 'aapt' in config:
|
|
||||||
return get_apk_id_aapt(apkfile)
|
return get_apk_id_aapt(apkfile)
|
||||||
|
else:
|
||||||
|
raise e
|
||||||
|
|
||||||
|
|
||||||
def get_apk_id_androguard(apkfile):
|
def get_apk_id_androguard(apkfile):
|
||||||
|
@ -21,7 +21,7 @@ import textwrap
|
|||||||
import yaml
|
import yaml
|
||||||
import gzip
|
import gzip
|
||||||
import stat
|
import stat
|
||||||
from zipfile import ZipFile, ZipInfo
|
from zipfile import BadZipFile, ZipFile, ZipInfo
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
@ -959,9 +959,24 @@ class CommonTest(unittest.TestCase):
|
|||||||
self.assertEqual(versionCode, vc, 'aapt versionCode parsing failed for ' + apkfilename)
|
self.assertEqual(versionCode, vc, 'aapt versionCode parsing failed for ' + apkfilename)
|
||||||
self.assertEqual(versionName, vn, 'aapt versionName parsing failed for ' + apkfilename)
|
self.assertEqual(versionName, vn, 'aapt versionName parsing failed for ' + apkfilename)
|
||||||
|
|
||||||
|
def test_get_apk_id_bad_path(self):
|
||||||
with self.assertRaises(FDroidException):
|
with self.assertRaises(FDroidException):
|
||||||
fdroidserver.common.get_apk_id('nope')
|
fdroidserver.common.get_apk_id('nope')
|
||||||
|
|
||||||
|
def test_get_apk_id_api_call(self):
|
||||||
|
self.assertEqual(
|
||||||
|
('info.guardianproject.urzip', '100', '0.1'),
|
||||||
|
fdroidserver.common.get_apk_id('urzip.apk'),
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_get_apk_id_bad_zip(self):
|
||||||
|
os.chdir(self.tmpdir)
|
||||||
|
badzip = 'badzip.apk'
|
||||||
|
with open(badzip, 'w') as fp:
|
||||||
|
fp.write('not a ZIP')
|
||||||
|
with self.assertRaises(BadZipFile):
|
||||||
|
fdroidserver.common.get_apk_id(badzip)
|
||||||
|
|
||||||
def test_get_apk_id_aapt_regex(self):
|
def test_get_apk_id_aapt_regex(self):
|
||||||
files = glob.glob(os.path.join(self.basedir, 'build-tools', '[1-9]*.*', '*.txt'))
|
files = glob.glob(os.path.join(self.basedir, 'build-tools', '[1-9]*.*', '*.txt'))
|
||||||
self.assertNotEqual(0, len(files))
|
self.assertNotEqual(0, len(files))
|
||||||
|
Loading…
Reference in New Issue
Block a user