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() |