# Copyright 2015 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import logging from autotest_lib.client.bin import utils from autotest_lib.client.common_lib import error from autotest_lib.server import test from autotest_lib.site_utils import lxc class ssp_PackageInstall(test.test): """Tests that server tests can install packages inside containers.""" version = 1 def install_os_packages(self, packages): """Install OS package in the test container. @param packages: OS packages to be installed. """ for package in packages: logging.debug('Installing package %s...', package) lxc.install_package(package) def install_python_packages(self, packages): """Install python package in the test container. @param packages: Python packages to be installed. """ for package in packages: logging.debug('Installing package %s...', package) lxc.install_python_package(package) def initialize(self): """Initialize test. """ self.install_os_packages(['sox']) self.install_python_packages(['selenium']) def run_once(self): """There is no body for this test. @raise: error.TestError if the test is not running inside container or any of the given packages failed to be installed. """ if not utils.is_in_container(): raise error.TestError('Install OS package is only supported in ' 'server-side packaging.') # Test OS package can be used. utils.run('sox --help') logging.info('Found sox executable.') # Test python module can be used. from selenium import webdriver logging.info('Found webdriver at %s', webdriver.__file__) return