| #!/usr/bin/env python |
| # Copyright 2015 The Chromium 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 argparse |
| import sys |
| import tempfile |
| import unittest |
| |
| from devil import devil_env |
| from devil.android import device_errors |
| from devil.android import device_utils |
| from devil.android.tools import script_common |
| |
| with devil_env.SysPath(devil_env.PYMOCK_PATH): |
| import mock # pylint: disable=import-error |
| |
| with devil_env.SysPath(devil_env.DEPENDENCY_MANAGER_PATH): |
| # pylint: disable=wrong-import-order |
| from dependency_manager import exceptions |
| |
| |
| class GetDevicesTest(unittest.TestCase): |
| def testNoSpecs(self): |
| devices = [ |
| device_utils.DeviceUtils('123'), |
| device_utils.DeviceUtils('456'), |
| ] |
| with mock.patch( |
| 'devil.android.device_utils.DeviceUtils.HealthyDevices', |
| return_value=devices): |
| self.assertEquals(devices, script_common.GetDevices(None, None)) |
| |
| def testWithDevices(self): |
| devices = [ |
| device_utils.DeviceUtils('123'), |
| device_utils.DeviceUtils('456'), |
| ] |
| with mock.patch( |
| 'devil.android.device_utils.DeviceUtils.HealthyDevices', |
| return_value=devices): |
| self.assertEquals([device_utils.DeviceUtils('456')], |
| script_common.GetDevices(['456'], None)) |
| |
| def testMissingDevice(self): |
| with mock.patch( |
| 'devil.android.device_utils.DeviceUtils.HealthyDevices', |
| return_value=[device_utils.DeviceUtils('123')]): |
| with self.assertRaises(device_errors.DeviceUnreachableError): |
| script_common.GetDevices(['456'], None) |
| |
| def testNoDevices(self): |
| with mock.patch( |
| 'devil.android.device_utils.DeviceUtils.HealthyDevices', |
| return_value=[]): |
| with self.assertRaises(device_errors.NoDevicesError): |
| script_common.GetDevices(None, None) |
| |
| |
| class InitializeEnvironmentTest(unittest.TestCase): |
| def setUp(self): |
| # pylint: disable=protected-access |
| self.parser = argparse.ArgumentParser() |
| script_common.AddEnvironmentArguments(self.parser) |
| devil_env.config = devil_env._Environment() |
| |
| def testNoAdb(self): |
| args = self.parser.parse_args([]) |
| script_common.InitializeEnvironment(args) |
| with self.assertRaises(exceptions.NoPathFoundError): |
| devil_env.config.LocalPath('adb') |
| |
| def testAdb(self): |
| with tempfile.NamedTemporaryFile() as f: |
| args = self.parser.parse_args(['--adb-path=%s' % f.name]) |
| script_common.InitializeEnvironment(args) |
| self.assertEquals(f.name, devil_env.config.LocalPath('adb')) |
| |
| def testNonExistentAdb(self): |
| with tempfile.NamedTemporaryFile() as f: |
| args = self.parser.parse_args(['--adb-path=%s' % f.name]) |
| script_common.InitializeEnvironment(args) |
| with self.assertRaises(exceptions.NoPathFoundError): |
| devil_env.config.LocalPath('adb') |
| |
| |
| if __name__ == '__main__': |
| sys.exit(unittest.main()) |