From 7c920f953c973b85597cf87c0d19e1fa6ae41214 Mon Sep 17 00:00:00 2001 From: Marc Bonnici Date: Tue, 23 Jan 2018 11:20:53 +0000 Subject: [PATCH] resource_getters: Add support for matching apks via package name Allows distinguishing between apks based on the package name specified in the workload. --- wlauto/common/android/resources.py | 3 ++- wlauto/common/android/workload.py | 6 ++++-- wlauto/resource_getters/standard.py | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/wlauto/common/android/resources.py b/wlauto/common/android/resources.py index 163a5dfc..04ed09cc 100644 --- a/wlauto/common/android/resources.py +++ b/wlauto/common/android/resources.py @@ -35,10 +35,11 @@ class ApkFile(FileResource): name = 'apk' - def __init__(self, owner, platform=None, uiauto=False): + def __init__(self, owner, platform=None, uiauto=False, package=None): super(ApkFile, self).__init__(owner) self.platform = platform self.uiauto = uiauto + self.package = package def __str__(self): apk_type = 'uiautomator ' if self.uiauto else '' diff --git a/wlauto/common/android/workload.py b/wlauto/common/android/workload.py index bf408058..fba8e428 100755 --- a/wlauto/common/android/workload.py +++ b/wlauto/common/android/workload.py @@ -220,7 +220,8 @@ class ApkWorkload(Workload): self.logger.debug("Found version '{}' on target device".format(target_version)) # Get host version - self.apk_file = context.resolver.get(ApkFile(self, self.device.abi), + self.apk_file = context.resolver.get(ApkFile(self, self.device.abi, + package=getattr(self, 'package', None)), version=getattr(self, 'version', None), variant_name=getattr(self, 'variant_name', None), strict=False) @@ -232,7 +233,8 @@ class ApkWorkload(Workload): # Get host version, primary abi is first, and then try to find supported. for abi in self.device.supported_abi: - self.apk_file = context.resolver.get(ApkFile(self, abi), + self.apk_file = context.resolver.get(ApkFile(self, abi, + package=getattr(self, 'package', None)), version=getattr(self, 'version', None), variant_name=getattr(self, 'variant_name', None), strict=False) diff --git a/wlauto/resource_getters/standard.py b/wlauto/resource_getters/standard.py index e77276ac..e9934224 100644 --- a/wlauto/resource_getters/standard.py +++ b/wlauto/resource_getters/standard.py @@ -565,6 +565,7 @@ def get_from_list_by_extension(resource, filelist, extension, version=None, vari filelist = [ff for ff in filelist if version.lower() in os.path.basename(ff).lower()] if extension == 'apk': 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 resource.package or resource.package == ApkInfo(ff).package] filelist = [ff for ff in filelist if resource.uiauto == ('com.arm.wlauto.uiauto' in ApkInfo(ff).package)] if len(filelist) == 1: return filelist[0]