| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2014 The Chromium Authors. All rights reserved. | 2 # Copyright 2014 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 the contents of device_utils.py (mostly DeviceUtils). | 7 Unit tests for the contents of device_utils.py (mostly DeviceUtils). |
| 8 """ | 8 """ |
| 9 | 9 |
| 10 # pylint: disable=C0321 | 10 # pylint: disable=C0321 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 36 sys.path.append(os.path.join( | 36 sys.path.append(os.path.join( |
| 37 constants.DIR_SOURCE_ROOT, 'third_party', 'pymock')) | 37 constants.DIR_SOURCE_ROOT, 'third_party', 'pymock')) |
| 38 import mock # pylint: disable=F0401 | 38 import mock # pylint: disable=F0401 |
| 39 | 39 |
| 40 | 40 |
| 41 class DeviceUtilsTest(unittest.TestCase): | 41 class DeviceUtilsTest(unittest.TestCase): |
| 42 | 42 |
| 43 def testInitWithStr(self): | 43 def testInitWithStr(self): |
| 44 serial_as_str = str('0123456789abcdef') | 44 serial_as_str = str('0123456789abcdef') |
| 45 d = device_utils.DeviceUtils('0123456789abcdef') | 45 d = device_utils.DeviceUtils('0123456789abcdef') |
| 46 self.assertEqual(serial_as_str, d.old_interface.GetDevice()) | 46 self.assertEqual(serial_as_str, d.adb.GetDeviceSerial()) |
| 47 | 47 |
| 48 def testInitWithUnicode(self): | 48 def testInitWithUnicode(self): |
| 49 serial_as_unicode = unicode('fedcba9876543210') | 49 serial_as_unicode = unicode('fedcba9876543210') |
| 50 d = device_utils.DeviceUtils(serial_as_unicode) | 50 d = device_utils.DeviceUtils(serial_as_unicode) |
| 51 self.assertEqual(serial_as_unicode, d.old_interface.GetDevice()) | 51 self.assertEqual(serial_as_unicode, d.adb.GetDeviceSerial()) |
| 52 | 52 |
| 53 def testInitWithAdbWrapper(self): | 53 def testInitWithAdbWrapper(self): |
| 54 serial = '123456789abcdef0' | 54 serial = '123456789abcdef0' |
| 55 a = adb_wrapper.AdbWrapper(serial) | 55 a = adb_wrapper.AdbWrapper(serial) |
| 56 d = device_utils.DeviceUtils(a) | 56 d = device_utils.DeviceUtils(a) |
| 57 self.assertEqual(serial, d.old_interface.GetDevice()) | 57 self.assertEqual(serial, d.adb.GetDeviceSerial()) |
| 58 | 58 |
| 59 def testInitWithAndroidCommands(self): | 59 def testInitWithAndroidCommands(self): |
| 60 serial = '0fedcba987654321' | 60 serial = '0fedcba987654321' |
| 61 a = android_commands.AndroidCommands(device=serial) | 61 a = android_commands.AndroidCommands(device=serial) |
| 62 d = device_utils.DeviceUtils(a) | 62 d = device_utils.DeviceUtils(a) |
| 63 self.assertEqual(serial, d.old_interface.GetDevice()) | 63 self.assertEqual(serial, d.adb.GetDeviceSerial()) |
| 64 | 64 |
| 65 def testInitWithNone(self): | 65 def testInitWithMissing_fails(self): |
| 66 d = device_utils.DeviceUtils(None) | 66 with self.assertRaises(ValueError): |
| 67 self.assertIsNone(d.old_interface.GetDevice()) | 67 device_utils.DeviceUtils(None) |
| 68 with self.assertRaises(ValueError): |
| 69 device_utils.DeviceUtils('') |
| 68 | 70 |
| 69 | 71 |
| 70 class MockTempFile(object): | 72 class MockTempFile(object): |
| 71 | 73 |
| 72 def __init__(self, name='/tmp/some/file'): | 74 def __init__(self, name='/tmp/some/file'): |
| 73 self.file = mock.MagicMock(spec=file) | 75 self.file = mock.MagicMock(spec=file) |
| 74 self.file.name = name | 76 self.file.name = name |
| 75 | 77 |
| 76 def __enter__(self): | 78 def __enter__(self): |
| 77 return self.file | 79 return self.file |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 | 241 |
| 240 class DeviceUtilsNewImplTest(mock_calls.TestCase): | 242 class DeviceUtilsNewImplTest(mock_calls.TestCase): |
| 241 | 243 |
| 242 def setUp(self): | 244 def setUp(self): |
| 243 test_serial = '0123456789abcdef' | 245 test_serial = '0123456789abcdef' |
| 244 self.adb = mock.Mock(spec=adb_wrapper.AdbWrapper) | 246 self.adb = mock.Mock(spec=adb_wrapper.AdbWrapper) |
| 245 self.adb.__str__ = mock.Mock(return_value=test_serial) | 247 self.adb.__str__ = mock.Mock(return_value=test_serial) |
| 246 self.adb.GetDeviceSerial.return_value = test_serial | 248 self.adb.GetDeviceSerial.return_value = test_serial |
| 247 self.device = device_utils.DeviceUtils( | 249 self.device = device_utils.DeviceUtils( |
| 248 self.adb, default_timeout=10, default_retries=0) | 250 self.adb, default_timeout=10, default_retries=0) |
| 249 self.watchMethodCalls(self.call.adb) | 251 self.watchMethodCalls(self.call.adb, ignore=['GetDeviceSerial']) |
| 250 | 252 |
| 251 def ShellError(self, output=None, exit_code=1): | 253 def ShellError(self, output=None, exit_code=1): |
| 252 def action(cmd, *args, **kwargs): | 254 def action(cmd, *args, **kwargs): |
| 253 raise device_errors.AdbCommandFailedError( | 255 raise device_errors.AdbCommandFailedError( |
| 254 cmd, output, exit_code, str(self.device)) | 256 cmd, output, exit_code, str(self.device)) |
| 255 if output is None: | 257 if output is None: |
| 256 output = 'Permission denied\n' | 258 output = 'Permission denied\n' |
| 257 return action | 259 return action |
| 258 | 260 |
| 259 def TimeoutError(self, msg=None): | 261 def TimeoutError(self, msg=None): |
| (...skipping 1285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1545 }, | 1547 }, |
| 1546 self.device.GetMemoryUsageForPid(1234)) | 1548 self.device.GetMemoryUsageForPid(1234)) |
| 1547 | 1549 |
| 1548 def testGetMemoryUsageForPid_invalidPid(self): | 1550 def testGetMemoryUsageForPid_invalidPid(self): |
| 1549 with self.assertCalls( | 1551 with self.assertCalls( |
| 1550 "adb -s 0123456789abcdef shell 'showmap 4321'", | 1552 "adb -s 0123456789abcdef shell 'showmap 4321'", |
| 1551 'cannot open /proc/4321/smaps: No such file or directory\r\n'): | 1553 'cannot open /proc/4321/smaps: No such file or directory\r\n'): |
| 1552 self.assertEqual({}, self.device.GetMemoryUsageForPid(4321)) | 1554 self.assertEqual({}, self.device.GetMemoryUsageForPid(4321)) |
| 1553 | 1555 |
| 1554 | 1556 |
| 1555 class DeviceUtilsStrTest(DeviceUtilsOldImplTest): | 1557 class DeviceUtilsStrTest(DeviceUtilsNewImplTest): |
| 1556 | 1558 |
| 1557 def testStr_noAdbCalls(self): | 1559 def testStr_returnsSerial(self): |
| 1558 with self.assertNoAdbCalls(): | 1560 with self.assertCalls( |
| 1561 (self.call.adb.GetDeviceSerial(), '0123456789abcdef')): |
| 1559 self.assertEqual('0123456789abcdef', str(self.device)) | 1562 self.assertEqual('0123456789abcdef', str(self.device)) |
| 1560 | 1563 |
| 1561 def testStr_noSerial(self): | |
| 1562 self.device = device_utils.DeviceUtils(None) | |
| 1563 with self.assertCalls('adb get-serialno', '0123456789abcdef'): | |
| 1564 self.assertEqual('0123456789abcdef', str(self.device)) | |
| 1565 | |
| 1566 def testStr_noSerial_noDevices(self): | |
| 1567 self.device = device_utils.DeviceUtils(None) | |
| 1568 with self.assertCalls('adb get-serialno', 'unknown'), ( | |
| 1569 self.assertRaises(device_errors.NoDevicesError)): | |
| 1570 str(self.device) | |
| 1571 | |
| 1572 | 1564 |
| 1573 if __name__ == '__main__': | 1565 if __name__ == '__main__': |
| 1574 logging.getLogger().setLevel(logging.DEBUG) | 1566 logging.getLogger().setLevel(logging.DEBUG) |
| 1575 unittest.main(verbosity=2) | 1567 unittest.main(verbosity=2) |
| 1576 | 1568 |
| OLD | NEW |