script_common_test.py revision cef7893435aa41160dd1255c43cb8498279738cc
1#!/usr/bin/env python
2# Copyright 2015 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6
7import sys
8import unittest
9
10from devil import devil_env
11from devil.android import device_errors
12from devil.android import device_utils
13from devil.android.tools import script_common
14
15with devil_env.SysPath(devil_env.PYMOCK_PATH):
16  import mock  # pylint: disable=import-error
17
18
19class ScriptCommonTest(unittest.TestCase):
20
21  def testGetDevices_noSpecs(self):
22    devices = [
23        device_utils.DeviceUtils('123'),
24        device_utils.DeviceUtils('456'),
25    ]
26    with mock.patch('devil.android.device_utils.DeviceUtils.HealthyDevices',
27                    return_value=devices):
28      self.assertEquals(
29          devices,
30          script_common.GetDevices(None, None))
31
32  def testGetDevices_withDevices(self):
33    devices = [
34        device_utils.DeviceUtils('123'),
35        device_utils.DeviceUtils('456'),
36    ]
37    with mock.patch('devil.android.device_utils.DeviceUtils.HealthyDevices',
38                    return_value=devices):
39      self.assertEquals(
40          [device_utils.DeviceUtils('456')],
41          script_common.GetDevices(['456'], None))
42
43  def testGetDevices_missingDevice(self):
44    with mock.patch('devil.android.device_utils.DeviceUtils.HealthyDevices',
45                    return_value=[device_utils.DeviceUtils('123')]):
46      with self.assertRaises(device_errors.DeviceUnreachableError):
47        script_common.GetDevices(['456'], None)
48
49  def testGetDevices_noDevices(self):
50    with mock.patch('devil.android.device_utils.DeviceUtils.HealthyDevices',
51                    return_value=[]):
52      with self.assertRaises(device_errors.NoDevicesError):
53        script_common.GetDevices(None, None)
54
55
56if __name__ == '__main__':
57  sys.exit(unittest.main())
58
59