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

Side by Side Diff: devil/devil/android/sdk/adb_wrapper_test.py

Issue 2899093002: [devil] Allow instantiation of AdbWrapper with USB bus identifer.
Patch Set: Allow AdbWrapper to specify devices using either serial number or USB id. serial number Created 3 years, 5 months 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
« no previous file with comments | « devil/devil/android/sdk/adb_wrapper.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2017 The Chromium Authors. All rights reserved. 2 # Copyright 2017 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """ 6 """
7 Unit tests for some APIs with conditional logic in adb_wrapper.py 7 Unit tests for some APIs with conditional logic in adb_wrapper.py
8 """ 8 """
9 9
10 import unittest 10 import unittest
11 11
12 from devil import devil_env 12 from devil import devil_env
13 from devil.android import device_errors 13 from devil.android import device_errors
14 from devil.android.sdk import adb_wrapper 14 from devil.android.sdk import adb_wrapper
15 15
16 with devil_env.SysPath(devil_env.PYMOCK_PATH): 16 with devil_env.SysPath(devil_env.PYMOCK_PATH):
17 import mock # pylint: disable=import-error 17 import mock # pylint: disable=import-error
18 18
19 19
20 class AdbWrapperTest(unittest.TestCase): 20 class AdbWrapperTest(unittest.TestCase):
21 def setUp(self): 21 def setUp(self):
22 self.adb = adb_wrapper.AdbWrapper('ABC12345678') 22 self.adb_wrapper_serial = adb_wrapper.AdbWrapper('ABC12345678')
23 self.adb_wrapper_busid = adb_wrapper.AdbWrapper('usb:1-2.3')
24 self.adb_wrappers = [self.adb_wrapper_serial, self.adb_wrapper_busid]
23 25
24 def _MockRunDeviceAdbCmd(self, return_value): 26 @staticmethod
27 def _MockRunDeviceAdbCmd(adb, mock_return_value):
25 return mock.patch.object( 28 return mock.patch.object(
26 self.adb, 29 adb,
27 '_RunDeviceAdbCmd', 30 '_RunDeviceAdbCmd',
28 mock.Mock(side_effect=None, return_value=return_value)) 31 mock.Mock(side_effect=None, return_value=mock_return_value))
32
33 @staticmethod
34 def _MockRunAdbCmd(mock_return_value):
35 return mock.patch(
36 'devil.android.sdk.adb_wrapper.AdbWrapper._RunAdbCmd',
37 mock.Mock(side_effect=None, return_value=mock_return_value))
29 38
30 def testDisableVerityWhenDisabled(self): 39 def testDisableVerityWhenDisabled(self):
31 with self._MockRunDeviceAdbCmd('Verity already disabled on /system'): 40 mock_return_value = 'Verity already disabled on /system'
32 self.adb.DisableVerity() 41 with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value):
42 self.adb_wrapper_serial.DisableVerity()
33 43
34 def testDisableVerityWhenEnabled(self): 44 def testDisableVerityWhenEnabled(self):
35 with self._MockRunDeviceAdbCmd( 45 mock_return_value = 'Verity disabled on /system\nNow reboot your device '\
36 'Verity disabled on /system\nNow reboot your device for settings to ' 46 'for settings to take effect'
perezju 2017/07/04 08:24:01 nit: bad indent; try something like: mock_return_
37 'take effect'): 47 with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value):
38 self.adb.DisableVerity() 48 self.adb_wrapper_serial.DisableVerity()
39 49
40 def testEnableVerityWhenEnabled(self): 50 def testEnableVerityWhenEnabled(self):
41 with self._MockRunDeviceAdbCmd('Verity already enabled on /system'): 51 mock_return_value = 'Verity already enabled on /system'
42 self.adb.EnableVerity() 52 with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value):
53 self.adb_wrapper_serial.EnableVerity()
43 54
44 def testEnableVerityWhenDisabled(self): 55 def testEnableVerityWhenDisabled(self):
45 with self._MockRunDeviceAdbCmd( 56 mock_return_value = 'Verity enabled on /system\nNow reboot your device '\
46 'Verity enabled on /system\nNow reboot your device for settings to ' 57 'for settings to take effect'
perezju 2017/07/04 08:24:00 nit: bad indent.
47 'take effect'): 58 with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value):
48 self.adb.EnableVerity() 59 self.adb_wrapper_serial.EnableVerity()
49 60
50 def testFailEnableVerity(self): 61 def testFailEnableVerity(self):
51 with self._MockRunDeviceAdbCmd('error: closed'): 62 mock_return_value = 'error: closed'
63 with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value):
52 self.assertRaises( 64 self.assertRaises(
53 device_errors.AdbCommandFailedError, self.adb.EnableVerity) 65 device_errors.AdbCommandFailedError,
66 self.adb_wrapper_serial.EnableVerity)
54 67
55 def testFailDisableVerity(self): 68 def testFailDisableVerity(self):
56 with self._MockRunDeviceAdbCmd('error: closed'): 69 mock_return_value = 'error: closed'
70 with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value):
57 self.assertRaises( 71 self.assertRaises(
58 device_errors.AdbCommandFailedError, self.adb.DisableVerity) 72 device_errors.AdbCommandFailedError,
73 self.adb_wrapper_serial.DisableVerity)
59 74
75 def testGetStateEmpty(self):
76 mock_return_value = 'List of devices attached\n'
77 for adb in self.adb_wrappers:
78 with self._MockRunAdbCmd(mock_return_value):
79 self.assertEqual(adb.GetState(), 'offline')
80
81 def testGetStateNoPermissions(self):
82 mock_return_value = 'List of devices attached\n' \
perezju 2017/07/04 08:24:01 nit: break long string using parenthesis, so you d
83 'PLACEHOLDER no permissions (verify udev ' \
perezju 2017/07/04 08:24:00 On the real adb output the PLACEHOLDER will always
84 'rules); see [' \
85 'http://developer.android.com/tools/device.html] ' \
86 'usb:1-2.3'
87 for adb in self.adb_wrappers:
88 ret = mock_return_value.replace("PLACEHOLDER", adb.GetDeviceSerial())
89 with self._MockRunAdbCmd(ret):
90 self.assertEqual(adb.GetState(), 'no')
91
92 def testGetStateUnauthorized(self):
93 mock_return_value = 'List of devices attached\n' \
94 'PLACEHOLDER unauthorized usb:1-2.3'
95 for adb in self.adb_wrappers:
96 ret = mock_return_value.replace("PLACEHOLDER", adb.GetDeviceSerial())
97 with self._MockRunAdbCmd(ret):
98 self.assertEqual(adb.GetState(), 'unauthorized')
99
100 def testGetStateOffline(self):
101 mock_return_value = 'List of devices attached\n' \
102 'PLACEHOLDER offline usb:1-2.3'
103 for adb in self.adb_wrappers:
104 ret = mock_return_value.replace("PLACEHOLDER", adb.GetDeviceSerial())
105 with self._MockRunAdbCmd(ret):
106 self.assertEqual(adb.GetState(), 'offline')
107
108 def testGetStateOnline(self):
109 mock_return_value = 'List of devices attached\n' \
110 'PLACEHOLDER device ' \
111 'usb:1-2.3 product:ramshead' \
112 'model:Nexus_123 device:ramshead'
113 for adb in self.adb_wrappers:
114 ret = mock_return_value.replace("PLACEHOLDER", adb.GetDeviceSerial())
115 with self._MockRunAdbCmd(ret):
116 self.assertEqual(adb.GetState(), 'device')
117
118
119 if __name__ == '__main__':
120 unittest.main()
OLDNEW
« no previous file with comments | « devil/devil/android/sdk/adb_wrapper.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698