Chromium Code Reviews| 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): | |
|
rnephew (Reviews Here)
2017/05/30 18:21:12
Any reason why this was moved to the module level
kavefish
2017/05/30 19:27:20
Only one: after I refactored MockRunDeviceAdbCmd()
rnephew (Reviews Here)
2017/05/30 19:40:32
Ah. In the future you can also just make it a stat
| |
| 21 return mock.patch.object( | |
| 22 adb, | |
| 23 '_RunDeviceAdbCmd', | |
| 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' | |
|
rnephew (Reviews Here)
2017/05/30 18:21:12
Is this output representative of what we would see
kavefish
2017/05/30 19:27:20
Not sure if you're asking me, but I'll do my best
rnephew (Reviews Here)
2017/05/30 19:40:32
I just thought that the return value from adb we w
| |
| 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 |