OLD | NEW |
---|---|
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 def MockRunDeviceAdbCmd(adb, return_value): | |
21 return mock.patch.object( | |
22 adb, | |
23 '_RunDeviceAdbCmd', | |
rnephew (Reviews Here)
2017/05/30 20:15:05
This is the method that has its return value mocke
| |
24 mock.Mock(side_effect=None, return_value=return_value)) | |
25 | |
26 | |
20 class AdbWrapperTest(unittest.TestCase): | 27 class AdbWrapperTest(unittest.TestCase): |
21 def setUp(self): | 28 def setUp(self): |
22 self.adb = adb_wrapper.AdbWrapper('ABC12345678') | 29 self.adb_wrappers = [ |
23 | 30 adb_wrapper.AdbWrapper('ABC12345678'), |
24 def _MockRunDeviceAdbCmd(self, return_value): | 31 adb_wrapper.AdbWrapper('usb:1-2.3'), |
25 return mock.patch.object( | 32 ] |
26 self.adb, | |
27 '_RunDeviceAdbCmd', | |
28 mock.Mock(side_effect=None, return_value=return_value)) | |
29 | 33 |
30 def testDisableVerityWhenDisabled(self): | 34 def testDisableVerityWhenDisabled(self): |
31 with self._MockRunDeviceAdbCmd('Verity already disabled on /system'): | 35 return_value = 'Verity already disabled on /system' |
32 self.adb.DisableVerity() | 36 for adb in self.adb_wrappers: |
37 with MockRunDeviceAdbCmd(adb, return_value): | |
38 adb.DisableVerity() | |
33 | 39 |
34 def testDisableVerityWhenEnabled(self): | 40 def testDisableVerityWhenEnabled(self): |
35 with self._MockRunDeviceAdbCmd( | 41 return_value = 'Verity disabled on /system\nNow reboot your device for ' \ |
36 'Verity disabled on /system\nNow reboot your device for settings to ' | 42 'settings to take effect' |
37 'take effect'): | 43 for adb in self.adb_wrappers: |
38 self.adb.DisableVerity() | 44 with MockRunDeviceAdbCmd(adb, return_value): |
45 adb.DisableVerity() | |
39 | 46 |
40 def testEnableVerityWhenEnabled(self): | 47 def testEnableVerityWhenEnabled(self): |
41 with self._MockRunDeviceAdbCmd('Verity already enabled on /system'): | 48 return_value = 'Verity already enabled on /system' |
42 self.adb.EnableVerity() | 49 for adb in self.adb_wrappers: |
50 with MockRunDeviceAdbCmd(adb, return_value): | |
51 adb.EnableVerity() | |
43 | 52 |
44 def testEnableVerityWhenDisabled(self): | 53 def testEnableVerityWhenDisabled(self): |
45 with self._MockRunDeviceAdbCmd( | 54 return_value = 'Verity enabled on /system\nNow reboot your device for ' \ |
46 'Verity enabled on /system\nNow reboot your device for settings to ' | 55 'settings to take effect' |
47 'take effect'): | 56 for adb in self.adb_wrappers: |
48 self.adb.EnableVerity() | 57 with MockRunDeviceAdbCmd(adb, return_value): |
58 adb.EnableVerity() | |
49 | 59 |
50 def testFailEnableVerity(self): | 60 def testFailEnableVerity(self): |
51 with self._MockRunDeviceAdbCmd('error: closed'): | 61 return_value = 'error: closed' |
52 self.assertRaises( | 62 for adb in self.adb_wrappers: |
53 device_errors.AdbCommandFailedError, self.adb.EnableVerity) | 63 with MockRunDeviceAdbCmd(adb, return_value): |
64 self.assertRaises(device_errors.AdbCommandFailedError, adb.EnableVerity) | |
54 | 65 |
55 def testFailDisableVerity(self): | 66 def testFailDisableVerity(self): |
56 with self._MockRunDeviceAdbCmd('error: closed'): | 67 return_value = 'error: closed' |
57 self.assertRaises( | 68 for adb in self.adb_wrappers: |
58 device_errors.AdbCommandFailedError, self.adb.DisableVerity) | 69 with MockRunDeviceAdbCmd(adb, return_value): |
70 self.assertRaises(device_errors.AdbCommandFailedError, | |
71 adb.DisableVerity) | |
59 | 72 |
73 def testGetStateOnline(self): | |
74 return_value = 'device' | |
75 for adb in self.adb_wrappers: | |
76 with MockRunDeviceAdbCmd(adb, return_value): | |
77 adb.GetState() | |
78 | |
79 def testGetStateOffline(self): | |
80 return_value = 'offline' | |
81 for adb in self.adb_wrappers: | |
82 with MockRunDeviceAdbCmd(adb, return_value): | |
83 adb.GetState() | |
84 | |
85 def testGetStateUnauthorized(self): | |
86 return_value = 'unauthorized' | |
87 for adb in self.adb_wrappers: | |
88 with MockRunDeviceAdbCmd(adb, return_value): | |
89 adb.GetState() | |
90 | |
91 def testGetStateBootloader(self): | |
92 return_value = 'bootloader' | |
93 for adb in self.adb_wrappers: | |
94 with MockRunDeviceAdbCmd(adb, return_value): | |
95 adb.GetState() | |
96 | |
97 def testGetStateNoPermissions(self): | |
98 return_value = 'no' # as in 'no permissions' | |
99 for adb in self.adb_wrappers: | |
100 with MockRunDeviceAdbCmd(adb, return_value): | |
101 adb.GetState() | |
102 | |
103 | |
104 if __name__ == '__main__': | |
105 unittest.main() | |
OLD | NEW |