diff --git a/wa/framework/workload.py b/wa/framework/workload.py index 2ffcdd29..7330d1ff 100644 --- a/wa/framework/workload.py +++ b/wa/framework/workload.py @@ -904,16 +904,20 @@ class PackageHandler(object): message = 'Cannot retrieve "{}" as not installed on Target' raise WorkloadError(message.format(package)) package_info = self.target.get_package_info(package) - self.target.pull(package_info.apk_path, self.owner.dependencies_directory, + apk_name = self._get_package_name(package_info.apk_path) + host_path = os.path.join(self.owner.dependencies_directory, apk_name) + self.target.pull(package_info.apk_path, host_path, timeout=self.install_timeout) - apk_name = self.target.path.basename(package_info.apk_path) - return os.path.join(self.owner.dependencies_directory, apk_name) + return host_path def teardown(self): self.target.execute('am force-stop {}'.format(self.apk_info.package)) if self.uninstall: self.target.uninstall_package(self.apk_info.package) + def _get_package_name(self, apk_path): + return self.target.path.basename(apk_path) + def _get_package_error_msg(self, location): if self.version: msg = 'Multiple matches for "{version}" found on {location}.' @@ -981,6 +985,9 @@ class TestPackageHandler(PackageHandler): self._instrument_output = self.target.execute(self.cmd) self.logger.debug(self._instrument_output) + def _get_package_name(self, apk_path): + return 'test_{}'.format(self.target.path.basename(apk_path)) + @property def instrument_output(self): if self.instrument_thread.is_alive():