Chromium Code Reviews| Index: devil/devil/android/sdk/adb_wrapper_test.py |
| diff --git a/devil/devil/android/sdk/adb_wrapper_test.py b/devil/devil/android/sdk/adb_wrapper_test.py |
| index ef08661208d8fe96e28cdda09dadcca79f16d478..b49d2ca97efa2ce4e3d9df6618c35746ffa5aa23 100755 |
| --- a/devil/devil/android/sdk/adb_wrapper_test.py |
| +++ b/devil/devil/android/sdk/adb_wrapper_test.py |
| @@ -19,41 +19,102 @@ with devil_env.SysPath(devil_env.PYMOCK_PATH): |
| class AdbWrapperTest(unittest.TestCase): |
| def setUp(self): |
| - self.adb = adb_wrapper.AdbWrapper('ABC12345678') |
| + self.adb_wrapper_serial = adb_wrapper.AdbWrapper('ABC12345678') |
| + self.adb_wrapper_busid = adb_wrapper.AdbWrapper('usb:1-2.3') |
| + self.adb_wrappers = [self.adb_wrapper_serial, self.adb_wrapper_busid] |
| - def _MockRunDeviceAdbCmd(self, return_value): |
| + @staticmethod |
| + def _MockRunDeviceAdbCmd(adb, mock_return_value): |
| return mock.patch.object( |
| - self.adb, |
| - '_RunDeviceAdbCmd', |
| - mock.Mock(side_effect=None, return_value=return_value)) |
| + adb, |
| + '_RunDeviceAdbCmd', |
| + mock.Mock(side_effect=None, return_value=mock_return_value)) |
| + |
| + @staticmethod |
| + def _MockRunAdbCmd(mock_return_value): |
| + return mock.patch( |
| + 'devil.android.sdk.adb_wrapper.AdbWrapper._RunAdbCmd', |
| + mock.Mock(side_effect=None, return_value=mock_return_value)) |
| def testDisableVerityWhenDisabled(self): |
| - with self._MockRunDeviceAdbCmd('Verity already disabled on /system'): |
| - self.adb.DisableVerity() |
| + mock_return_value = 'Verity already disabled on /system' |
| + with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value): |
| + self.adb_wrapper_serial.DisableVerity() |
| def testDisableVerityWhenEnabled(self): |
| - with self._MockRunDeviceAdbCmd( |
| - 'Verity disabled on /system\nNow reboot your device for settings to ' |
| - 'take effect'): |
| - self.adb.DisableVerity() |
| + mock_return_value = 'Verity disabled on /system\nNow reboot your device '\ |
| + 'for settings to take effect' |
|
perezju
2017/07/04 08:24:01
nit: bad indent; try something like:
mock_return_
|
| + with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value): |
| + self.adb_wrapper_serial.DisableVerity() |
| def testEnableVerityWhenEnabled(self): |
| - with self._MockRunDeviceAdbCmd('Verity already enabled on /system'): |
| - self.adb.EnableVerity() |
| + mock_return_value = 'Verity already enabled on /system' |
| + with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value): |
| + self.adb_wrapper_serial.EnableVerity() |
| def testEnableVerityWhenDisabled(self): |
| - with self._MockRunDeviceAdbCmd( |
| - 'Verity enabled on /system\nNow reboot your device for settings to ' |
| - 'take effect'): |
| - self.adb.EnableVerity() |
| + mock_return_value = 'Verity enabled on /system\nNow reboot your device '\ |
| + 'for settings to take effect' |
|
perezju
2017/07/04 08:24:00
nit: bad indent.
|
| + with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value): |
| + self.adb_wrapper_serial.EnableVerity() |
| def testFailEnableVerity(self): |
| - with self._MockRunDeviceAdbCmd('error: closed'): |
| + mock_return_value = 'error: closed' |
| + with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value): |
| self.assertRaises( |
| - device_errors.AdbCommandFailedError, self.adb.EnableVerity) |
| + device_errors.AdbCommandFailedError, |
| + self.adb_wrapper_serial.EnableVerity) |
| def testFailDisableVerity(self): |
| - with self._MockRunDeviceAdbCmd('error: closed'): |
| + mock_return_value = 'error: closed' |
| + with self._MockRunDeviceAdbCmd(self.adb_wrapper_serial, mock_return_value): |
| self.assertRaises( |
| - device_errors.AdbCommandFailedError, self.adb.DisableVerity) |
| + device_errors.AdbCommandFailedError, |
| + self.adb_wrapper_serial.DisableVerity) |
| + |
| + def testGetStateEmpty(self): |
| + mock_return_value = 'List of devices attached\n' |
| + for adb in self.adb_wrappers: |
| + with self._MockRunAdbCmd(mock_return_value): |
| + self.assertEqual(adb.GetState(), 'offline') |
| + |
| + def testGetStateNoPermissions(self): |
| + mock_return_value = 'List of devices attached\n' \ |
|
perezju
2017/07/04 08:24:01
nit: break long string using parenthesis, so you d
|
| + 'PLACEHOLDER no permissions (verify udev ' \ |
|
perezju
2017/07/04 08:24:00
On the real adb output the PLACEHOLDER will always
|
| + 'rules); see [' \ |
| + 'http://developer.android.com/tools/device.html] ' \ |
| + 'usb:1-2.3' |
| + for adb in self.adb_wrappers: |
| + ret = mock_return_value.replace("PLACEHOLDER", adb.GetDeviceSerial()) |
| + with self._MockRunAdbCmd(ret): |
| + self.assertEqual(adb.GetState(), 'no') |
| + |
| + def testGetStateUnauthorized(self): |
| + mock_return_value = 'List of devices attached\n' \ |
| + 'PLACEHOLDER unauthorized usb:1-2.3' |
| + for adb in self.adb_wrappers: |
| + ret = mock_return_value.replace("PLACEHOLDER", adb.GetDeviceSerial()) |
| + with self._MockRunAdbCmd(ret): |
| + self.assertEqual(adb.GetState(), 'unauthorized') |
| + |
| + def testGetStateOffline(self): |
| + mock_return_value = 'List of devices attached\n' \ |
| + 'PLACEHOLDER offline usb:1-2.3' |
| + for adb in self.adb_wrappers: |
| + ret = mock_return_value.replace("PLACEHOLDER", adb.GetDeviceSerial()) |
| + with self._MockRunAdbCmd(ret): |
| + self.assertEqual(adb.GetState(), 'offline') |
| + |
| + def testGetStateOnline(self): |
| + mock_return_value = 'List of devices attached\n' \ |
| + 'PLACEHOLDER device ' \ |
| + 'usb:1-2.3 product:ramshead' \ |
| + 'model:Nexus_123 device:ramshead' |
| + for adb in self.adb_wrappers: |
| + ret = mock_return_value.replace("PLACEHOLDER", adb.GetDeviceSerial()) |
| + with self._MockRunAdbCmd(ret): |
| + self.assertEqual(adb.GetState(), 'device') |
| + |
| +if __name__ == '__main__': |
| + unittest.main() |