test_find_apksigner_system_package_android_home if build_tools is new enough

This commit is contained in:
Hans-Christoph Steiner 2022-06-08 20:00:36 +02:00
parent f04af445dd
commit 2bf6848391

View file

@ -21,6 +21,7 @@ import textwrap
import yaml import yaml
import gzip import gzip
import stat import stat
from distutils.version import LooseVersion
from zipfile import BadZipFile, ZipFile, ZipInfo from zipfile import BadZipFile, ZipFile, ZipInfo
from unittest import mock from unittest import mock
from pathlib import Path from pathlib import Path
@ -782,6 +783,7 @@ class CommonTest(unittest.TestCase):
self.assertEqual(apksigner, config.get('apksigner')) self.assertEqual(apksigner, config.get('apksigner'))
def test_find_apksigner_system_package_android_home(self): def test_find_apksigner_system_package_android_home(self):
"""Test that apksigner v30 or newer is found"""
testdir = tempfile.mkdtemp( testdir = tempfile.mkdtemp(
prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir prefix=inspect.currentframe().f_code.co_name, dir=self.tmpdir
) )
@ -789,8 +791,19 @@ class CommonTest(unittest.TestCase):
android_home = os.getenv('ANDROID_HOME') android_home = os.getenv('ANDROID_HOME')
if not android_home or not os.path.isdir(android_home): if not android_home or not os.path.isdir(android_home):
self.skipTest('SKIPPING since ANDROID_HOME (%s) is not a dir!' % android_home) self.skipTest('SKIPPING since ANDROID_HOME (%s) is not a dir!' % android_home)
if not glob.glob(os.path.join(android_home, 'build-tools', '*', 'apksigner')): build_tools = glob.glob(os.path.join(android_home, 'build-tools', '*', 'apksigner'))
if not build_tools:
self.skipTest('SKIPPING since ANDROID_HOME (%s) build-tools has no apksigner!' % android_home) self.skipTest('SKIPPING since ANDROID_HOME (%s) build-tools has no apksigner!' % android_home)
min_version = fdroidserver.common.MINIMUM_APKSIGNER_BUILD_TOOLS_VERSION
version = '0'
for bt in sorted(build_tools):
v = bt.split('/')[-2]
if v == 'debian':
continue
if LooseVersion(version) < LooseVersion(v):
version = v
if LooseVersion(version) < LooseVersion(min_version):
self.skipTest('SKIPPING since build-tools %s or higher is required!' % min_version)
fdroidserver.common.config = {'sdk_path': android_home} fdroidserver.common.config = {'sdk_path': android_home}
os.environ['PATH'] = '/fake/path/to/avoid/conflicts' os.environ['PATH'] = '/fake/path/to/avoid/conflicts'
config = fdroidserver.common.read_config() config = fdroidserver.common.read_config()