1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-03-21 18:18:41 +00:00

ResourceGetters: Added support for finding uiautoapk files.

Also ensures to check for a `.` to signify the start of a file extension to prevent
extensions with the same ending being mixed up.
This commit is contained in:
Marc Bonnici 2017-05-05 11:51:01 +01:00
parent bc6af25366
commit b948d28c62

View File

@ -122,6 +122,11 @@ class PackageApkGetter(PackageFileGetter):
return get_from_location_by_extension(resource, resource_dir, self.extension, version, variant=variant) return get_from_location_by_extension(resource, resource_dir, self.extension, version, variant=variant)
class PackageUiautoApkGetter(PackageApkGetter):
name = 'uiautoapk'
extension = 'uiautoapk'
class PackageJarGetter(PackageFileGetter): class PackageJarGetter(PackageFileGetter):
name = 'package_jar' name = 'package_jar'
extension = 'jar' extension = 'jar'
@ -407,7 +412,7 @@ class HttpGetter(ResourceGetter):
assets = self.index.get(resource.owner.name, {}) assets = self.index.get(resource.owner.name, {})
if not assets: if not assets:
return {} return {}
if resource.name in ['apk', 'jar']: if resource.name in ['apk', 'jar', 'uiautoapk']:
paths = [a['path'] for a in assets] paths = [a['path'] for a in assets]
version = getattr(resource, 'version', None) version = getattr(resource, 'version', None)
found = get_from_list_by_extension(resource, paths, resource.name, version) found = get_from_list_by_extension(resource, paths, resource.name, version)
@ -452,7 +457,7 @@ class RemoteFilerGetter(ResourceGetter):
""" """
priority = GetterPriority.remote priority = GetterPriority.remote
resource_type = ['apk', 'file', 'jar', 'revent'] resource_type = ['apk', 'file', 'jar', 'revent', 'uiautoapk']
parameters = [ parameters = [
Parameter('remote_path', global_alias='remote_assets_path', default='', Parameter('remote_path', global_alias='remote_assets_path', default='',
@ -500,7 +505,7 @@ class RemoteFilerGetter(ResourceGetter):
def get_from(self, resource, version, location): # pylint: disable=no-self-use def get_from(self, resource, version, location): # pylint: disable=no-self-use
# pylint: disable=too-many-branches # pylint: disable=too-many-branches
if resource.name in ['apk', 'jar']: if resource.name in ['apk', 'jar', 'uiautoapk']:
return get_from_location_by_extension(resource, location, resource.name, version) return get_from_location_by_extension(resource, location, resource.name, version)
elif resource.name == 'file': elif resource.name == 'file':
filepath = os.path.join(location, resource.path) filepath = os.path.join(location, resource.path)
@ -553,15 +558,15 @@ def get_from_location_by_extension(resource, location, extension, version=None,
def get_from_list_by_extension(resource, filelist, extension, version=None, variant=None): def get_from_list_by_extension(resource, filelist, extension, version=None, variant=None):
filelist = [ff for ff in filelist if os.path.splitext(ff)[1].lower().endswith(extension)] filelist = [ff for ff in filelist if os.path.splitext(ff)[1].lower().endswith('.' + extension)]
if variant: if variant:
filelist = [ff for ff in filelist if variant.lower() in os.path.basename(ff).lower()] filelist = [ff for ff in filelist if variant.lower() in os.path.basename(ff).lower()]
if version: if version:
if extension == 'apk': if extension in ['apk', 'uiautoapk']:
filelist = [ff for ff in filelist if version.lower() in ApkInfo(ff).version_name.lower()] filelist = [ff for ff in filelist if version.lower() in ApkInfo(ff).version_name.lower()]
else: else:
filelist = [ff for ff in filelist if version.lower() in os.path.basename(ff).lower()] filelist = [ff for ff in filelist if version.lower() in os.path.basename(ff).lower()]
if extension == 'apk': if extension in ['apk', 'uiautoapk']:
filelist = [ff for ff in filelist if not ApkInfo(ff).native_code or resource.platform in ApkInfo(ff).native_code] filelist = [ff for ff in filelist if not ApkInfo(ff).native_code or resource.platform in ApkInfo(ff).native_code]
if len(filelist) == 1: if len(filelist) == 1:
return filelist[0] return filelist[0]