1# Copyright 2015 The Chromium OS Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import logging 6 7from autotest_lib.client.bin import utils 8from autotest_lib.client.common_lib import error 9from autotest_lib.server import test 10from autotest_lib.site_utils import lxc 11 12 13class ssp_PackageInstall(test.test): 14 """Tests that server tests can install packages inside containers.""" 15 version = 1 16 17 def install_os_packages(self, packages): 18 """Install OS package in the test container. 19 20 @param packages: OS packages to be installed. 21 """ 22 for package in packages: 23 logging.debug('Installing package %s...', package) 24 lxc.install_package(package) 25 26 27 def install_python_packages(self, packages): 28 """Install python package in the test container. 29 30 @param packages: Python packages to be installed. 31 """ 32 for package in packages: 33 logging.debug('Installing package %s...', package) 34 lxc.install_python_package(package) 35 36 37 def initialize(self): 38 """Initialize test. 39 """ 40 self.install_os_packages(['sox']) 41 self.install_python_packages(['selenium']) 42 43 44 def run_once(self): 45 """There is no body for this test. 46 47 @raise: error.TestError if the test is not running inside container or 48 any of the given packages failed to be installed. 49 50 """ 51 if not utils.is_in_container(): 52 raise error.TestError('Install OS package is only supported in ' 53 'server-side packaging.') 54 # Test OS package can be used. 55 utils.run('sox --help') 56 logging.info('Found sox executable.') 57 58 # Test python module can be used. 59 from selenium import webdriver 60 logging.info('Found webdriver at %s', webdriver.__file__) 61 62 return