Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(788)

Side by Side Diff: tools/telemetry/telemetry/internal/platform/android_device_unittest.py

Issue 1416703003: [Android] Add a configurable environment for devil/. (RELAND 2) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import unittest 5 import unittest
6 6
7 from telemetry import decorators
7 from telemetry.internal.browser import browser_options 8 from telemetry.internal.browser import browser_options
8 from telemetry.internal.platform import android_device 9 from telemetry.internal.platform import android_device
9 from telemetry.testing import system_stub 10 from telemetry.testing import system_stub
10 import mock 11 import mock
11 12
12 from devil.android import device_utils 13 from devil.android import device_utils
13 14
14 15
15 class _BaseAndroidDeviceTest(unittest.TestCase): 16 class _BaseAndroidDeviceTest(unittest.TestCase):
16 def setUp(self): 17 def setUp(self):
17 self._healthy_device_patcher = mock.patch( 18 self._healthy_device_patcher = mock.patch(
18 'devil.android.device_utils.DeviceUtils.HealthyDevices') 19 'devil.android.device_utils.DeviceUtils.HealthyDevices')
19 self._healthy_device_mock = self._healthy_device_patcher.start() 20 self._healthy_device_mock = self._healthy_device_patcher.start()
20 self._android_device_stub = system_stub.Override( 21 self._android_device_stub = system_stub.Override(
21 android_device, ['subprocess', 'logging']) 22 android_device, ['subprocess', 'logging'])
22 23
23 def _GetMockDeviceUtils(self, device_serial, is_online=True): 24 def _GetMockDeviceUtils(self, device_serial, is_online=True):
24 device = device_utils.DeviceUtils(device_serial) 25 device = device_utils.DeviceUtils(device_serial)
25 device.IsOnline = mock.MagicMock(return_value=is_online) 26 device.IsOnline = mock.MagicMock(return_value=is_online)
26 return device 27 return device
27 28
28 def tearDown(self): 29 def tearDown(self):
29 self._healthy_device_patcher.stop() 30 self._healthy_device_patcher.stop()
30 self._android_device_stub.Restore() 31 self._android_device_stub.Restore()
31 32
32 33
33 class AndroidDeviceTest(_BaseAndroidDeviceTest): 34 class AndroidDeviceTest(_BaseAndroidDeviceTest):
35 @decorators.Enabled('android')
34 def testGetAllAttachedAndroidDevices(self): 36 def testGetAllAttachedAndroidDevices(self):
35 self._healthy_device_mock.return_value = [ 37 self._healthy_device_mock.return_value = [
36 self._GetMockDeviceUtils('01'), 38 self._GetMockDeviceUtils('01'),
37 self._GetMockDeviceUtils('07', is_online=False), 39 self._GetMockDeviceUtils('07', is_online=False),
38 self._GetMockDeviceUtils('02'), 40 self._GetMockDeviceUtils('02'),
39 self._GetMockDeviceUtils('03', is_online=False)] 41 self._GetMockDeviceUtils('03', is_online=False)]
40 self.assertEquals( 42 self.assertEquals(
41 set(['01', '02']), 43 set(['01', '02']),
42 set(device.device_id for device in 44 set(device.device_id for device in
43 android_device.AndroidDevice.GetAllConnectedDevices(None))) 45 android_device.AndroidDevice.GetAllConnectedDevices(None)))
44 46
47 @decorators.Enabled('android')
45 def testNoAdbReturnsNone(self): 48 def testNoAdbReturnsNone(self):
46 finder_options = browser_options.BrowserFinderOptions() 49 finder_options = browser_options.BrowserFinderOptions()
47 with ( 50 with (
48 mock.patch('os.path.isabs', return_value=True)), ( 51 mock.patch('os.path.isabs', return_value=True)), (
49 mock.patch('os.path.exists', return_value=False)): 52 mock.patch('os.path.exists', return_value=False)):
50 self.assertEquals([], self._android_device_stub.logging.warnings) 53 self.assertEquals([], self._android_device_stub.logging.warnings)
51 self.assertIsNone(android_device.GetDevice(finder_options)) 54 self.assertIsNone(android_device.GetDevice(finder_options))
52 55
56 @decorators.Enabled('android')
53 def testAdbNoDevicesReturnsNone(self): 57 def testAdbNoDevicesReturnsNone(self):
54 finder_options = browser_options.BrowserFinderOptions() 58 finder_options = browser_options.BrowserFinderOptions()
55 with mock.patch('os.path.isabs', return_value=False): 59 with mock.patch('os.path.isabs', return_value=False):
56 self._healthy_device_mock.return_value = [] 60 self._healthy_device_mock.return_value = []
57 self.assertEquals([], self._android_device_stub.logging.warnings) 61 self.assertEquals([], self._android_device_stub.logging.warnings)
58 self.assertIsNone(android_device.GetDevice(finder_options)) 62 self.assertIsNone(android_device.GetDevice(finder_options))
59 63
64 @decorators.Enabled('android')
60 def testAdbTwoDevicesReturnsNone(self): 65 def testAdbTwoDevicesReturnsNone(self):
61 finder_options = browser_options.BrowserFinderOptions() 66 finder_options = browser_options.BrowserFinderOptions()
62 with mock.patch('os.path.isabs', return_value=False): 67 with mock.patch('os.path.isabs', return_value=False):
63 self._healthy_device_mock.return_value = [ 68 self._healthy_device_mock.return_value = [
64 self._GetMockDeviceUtils('015d14fec128220c'), 69 self._GetMockDeviceUtils('015d14fec128220c'),
65 self._GetMockDeviceUtils('015d14fec128220d')] 70 self._GetMockDeviceUtils('015d14fec128220d')]
66 device = android_device.GetDevice(finder_options) 71 device = android_device.GetDevice(finder_options)
67 self.assertEquals([ 72 self.assertEquals([
68 'Multiple devices attached. Please specify one of the following:\n' 73 'Multiple devices attached. Please specify one of the following:\n'
69 ' --device=015d14fec128220c\n' 74 ' --device=015d14fec128220c\n'
70 ' --device=015d14fec128220d'], 75 ' --device=015d14fec128220d'],
71 self._android_device_stub.logging.warnings) 76 self._android_device_stub.logging.warnings)
72 self.assertIsNone(device) 77 self.assertIsNone(device)
73 78
79 @decorators.Enabled('android')
74 def testAdbPickOneDeviceReturnsDeviceInstance(self): 80 def testAdbPickOneDeviceReturnsDeviceInstance(self):
75 finder_options = browser_options.BrowserFinderOptions() 81 finder_options = browser_options.BrowserFinderOptions()
76 finder_options.device = '555d14fecddddddd' # pick one 82 finder_options.device = '555d14fecddddddd' # pick one
77 with mock.patch('os.path.isabs', return_value=False): 83 with mock.patch('os.path.isabs', return_value=False):
78 self._healthy_device_mock.return_value = [ 84 self._healthy_device_mock.return_value = [
79 self._GetMockDeviceUtils('015d14fec128220c'), 85 self._GetMockDeviceUtils('015d14fec128220c'),
80 self._GetMockDeviceUtils('555d14fecddddddd')] 86 self._GetMockDeviceUtils('555d14fecddddddd')]
81 device = android_device.GetDevice(finder_options) 87 device = android_device.GetDevice(finder_options)
82 self.assertEquals([], self._android_device_stub.logging.warnings) 88 self.assertEquals([], self._android_device_stub.logging.warnings)
83 self.assertEquals('555d14fecddddddd', device.device_id) 89 self.assertEquals('555d14fecddddddd', device.device_id)
84 90
91 @decorators.Enabled('android')
85 def testAdbOneDeviceReturnsDeviceInstance(self): 92 def testAdbOneDeviceReturnsDeviceInstance(self):
86 finder_options = browser_options.BrowserFinderOptions() 93 finder_options = browser_options.BrowserFinderOptions()
87 with mock.patch('os.path.isabs', return_value=False): 94 with mock.patch('os.path.isabs', return_value=False):
88 self._healthy_device_mock.return_value = [ 95 self._healthy_device_mock.return_value = [
89 self._GetMockDeviceUtils('015d14fec128220c')] 96 self._GetMockDeviceUtils('015d14fec128220c')]
90 device = android_device.GetDevice(finder_options) 97 device = android_device.GetDevice(finder_options)
91 self.assertEquals([], self._android_device_stub.logging.warnings) 98 self.assertEquals([], self._android_device_stub.logging.warnings)
92 self.assertEquals('015d14fec128220c', device.device_id) 99 self.assertEquals('015d14fec128220c', device.device_id)
93 100
94 101
95 class FindAllAvailableDevicesTest(_BaseAndroidDeviceTest): 102 class FindAllAvailableDevicesTest(_BaseAndroidDeviceTest):
103 @decorators.Enabled('android')
96 def testAdbNoDeviceReturnsEmptyList(self): 104 def testAdbNoDeviceReturnsEmptyList(self):
97 finder_options = browser_options.BrowserFinderOptions() 105 finder_options = browser_options.BrowserFinderOptions()
98 with mock.patch('os.path.isabs', return_value=False): 106 with mock.patch('os.path.isabs', return_value=False):
99 self._healthy_device_mock.return_value = [] 107 self._healthy_device_mock.return_value = []
100 devices = android_device.FindAllAvailableDevices(finder_options) 108 devices = android_device.FindAllAvailableDevices(finder_options)
101 self.assertEquals([], self._android_device_stub.logging.warnings) 109 self.assertEquals([], self._android_device_stub.logging.warnings)
102 self.assertIsNotNone(devices) 110 self.assertIsNotNone(devices)
103 self.assertEquals(len(devices), 0) 111 self.assertEquals(len(devices), 0)
104 112
113 @decorators.Enabled('android')
105 def testAdbOneDeviceReturnsListWithOneDeviceInstance(self): 114 def testAdbOneDeviceReturnsListWithOneDeviceInstance(self):
106 finder_options = browser_options.BrowserFinderOptions() 115 finder_options = browser_options.BrowserFinderOptions()
107 with mock.patch('os.path.isabs', return_value=False): 116 with mock.patch('os.path.isabs', return_value=False):
108 self._healthy_device_mock.return_value = [ 117 self._healthy_device_mock.return_value = [
109 self._GetMockDeviceUtils('015d14fec128220c')] 118 self._GetMockDeviceUtils('015d14fec128220c')]
110 devices = android_device.FindAllAvailableDevices(finder_options) 119 devices = android_device.FindAllAvailableDevices(finder_options)
111 self.assertEquals([], self._android_device_stub.logging.warnings) 120 self.assertEquals([], self._android_device_stub.logging.warnings)
112 self.assertIsNotNone(devices) 121 self.assertIsNotNone(devices)
113 self.assertEquals(len(devices), 1) 122 self.assertEquals(len(devices), 1)
114 self.assertEquals('015d14fec128220c', devices[0].device_id) 123 self.assertEquals('015d14fec128220c', devices[0].device_id)
115 124
125 @decorators.Enabled('android')
116 def testAdbMultipleDevicesReturnsListWithAllDeviceInstances(self): 126 def testAdbMultipleDevicesReturnsListWithAllDeviceInstances(self):
117 finder_options = browser_options.BrowserFinderOptions() 127 finder_options = browser_options.BrowserFinderOptions()
118 with mock.patch('os.path.isabs', return_value=False): 128 with mock.patch('os.path.isabs', return_value=False):
119 self._healthy_device_mock.return_value = [ 129 self._healthy_device_mock.return_value = [
120 self._GetMockDeviceUtils('015d14fec128220c'), 130 self._GetMockDeviceUtils('015d14fec128220c'),
121 self._GetMockDeviceUtils('this0should0not0show', is_online=False), 131 self._GetMockDeviceUtils('this0should0not0show', is_online=False),
122 self._GetMockDeviceUtils('015d14fec128220d'), 132 self._GetMockDeviceUtils('015d14fec128220d'),
123 self._GetMockDeviceUtils('015d14fec128220e')] 133 self._GetMockDeviceUtils('015d14fec128220e')]
124 devices = android_device.FindAllAvailableDevices(finder_options) 134 devices = android_device.FindAllAvailableDevices(finder_options)
125 self.assertEquals([], self._android_device_stub.logging.warnings) 135 self.assertEquals([], self._android_device_stub.logging.warnings)
126 self.assertIsNotNone(devices) 136 self.assertIsNotNone(devices)
127 self.assertEquals(len(devices), 3) 137 self.assertEquals(len(devices), 3)
128 self.assertEquals(devices[0].guid, '015d14fec128220c') 138 self.assertEquals(devices[0].guid, '015d14fec128220c')
129 self.assertEquals(devices[1].guid, '015d14fec128220d') 139 self.assertEquals(devices[1].guid, '015d14fec128220d')
130 self.assertEquals(devices[2].guid, '015d14fec128220e') 140 self.assertEquals(devices[2].guid, '015d14fec128220e')
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698