Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(493)

Side by Side Diff: build/android/pylib/device/device_utils_test.py

Issue 796433002: Revert of Migrate DeviceUtils.ReadFile to adb_wrapper (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/android/pylib/device/device_utils.py ('k') | build/android/pylib/flag_changer.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 self.adb = mock.Mock(spec=adb_wrapper.AdbWrapper) 246 self.adb = mock.Mock(spec=adb_wrapper.AdbWrapper)
247 self.adb.__str__ = mock.Mock(return_value=test_serial) 247 self.adb.__str__ = mock.Mock(return_value=test_serial)
248 self.adb.GetDeviceSerial.return_value = test_serial 248 self.adb.GetDeviceSerial.return_value = test_serial
249 self.device = device_utils.DeviceUtils( 249 self.device = device_utils.DeviceUtils(
250 self.adb, default_timeout=10, default_retries=0) 250 self.adb, default_timeout=10, default_retries=0)
251 self.watchMethodCalls(self.call.adb, ignore=['GetDeviceSerial']) 251 self.watchMethodCalls(self.call.adb, ignore=['GetDeviceSerial'])
252 252
253 def ShellError(self, output=None, exit_code=1): 253 def ShellError(self, output=None, exit_code=1):
254 def action(cmd, *args, **kwargs): 254 def action(cmd, *args, **kwargs):
255 raise device_errors.AdbCommandFailedError( 255 raise device_errors.AdbCommandFailedError(
256 ['shell', cmd], output, exit_code, str(self.device)) 256 cmd, output, exit_code, str(self.device))
257 if output is None: 257 if output is None:
258 output = 'Permission denied\n' 258 output = 'Permission denied\n'
259 return action 259 return action
260 260
261 def TimeoutError(self, msg=None): 261 def TimeoutError(self, msg=None):
262 if msg is None: 262 if msg is None:
263 msg = 'Operation timed out' 263 msg = 'Operation timed out'
264 return mock.Mock(side_effect=device_errors.CommandTimeoutError( 264 return mock.Mock(side_effect=device_errors.CommandTimeoutError(
265 msg, str(self.device))) 265 msg, str(self.device)))
266 266
(...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after
1116 with mock.patch('os.path.exists', return_value=True): 1116 with mock.patch('os.path.exists', return_value=True):
1117 with self.assertCalls( 1117 with self.assertCalls(
1118 'adb -s 0123456789abcdef shell ' 1118 'adb -s 0123456789abcdef shell '
1119 'ls /data/app/test.file.does.not.exist', 1119 'ls /data/app/test.file.does.not.exist',
1120 '/data/app/test.file.does.not.exist: No such file or directory\r\n'): 1120 '/data/app/test.file.does.not.exist: No such file or directory\r\n'):
1121 with self.assertRaises(device_errors.CommandFailedError): 1121 with self.assertRaises(device_errors.CommandFailedError):
1122 self.device.PullFile('/data/app/test.file.does.not.exist', 1122 self.device.PullFile('/data/app/test.file.does.not.exist',
1123 '/test/file/host/path') 1123 '/test/file/host/path')
1124 1124
1125 1125
1126 class DeviceUtilsReadFileTest(DeviceUtilsNewImplTest): 1126 class DeviceUtilsReadFileTest(DeviceUtilsOldImplTest):
1127 1127
1128 def testReadFile_exists(self): 1128 def testReadFile_exists(self):
1129 with self.assertCall( 1129 with self.assertCallsSequence([
1130 self.call.adb.Shell('cat /read/this/test/file'), 1130 ("adb -s 0123456789abcdef shell "
1131 'this is a test file\r\n'): 1131 "'cat \"/read/this/test/file\" 2>/dev/null'",
1132 self.assertEqual('this is a test file\n', 1132 'this is a test file')]):
1133 self.assertEqual(['this is a test file'],
1133 self.device.ReadFile('/read/this/test/file')) 1134 self.device.ReadFile('/read/this/test/file'))
1134 1135
1135 def testReadFile_doesNotExist(self): 1136 def testReadFile_doesNotExist(self):
1136 with self.assertCall( 1137 with self.assertCalls(
1137 self.call.adb.Shell('cat /this/file/does.not.exist'), 1138 "adb -s 0123456789abcdef shell "
1138 self.ShellError('/system/bin/sh: cat: /this/file/does.not.exist: ' 1139 "'cat \"/this/file/does.not.exist\" 2>/dev/null'",
1139 'No such file or directory')): 1140 ''):
1140 with self.assertRaises(device_errors.AdbCommandFailedError): 1141 self.device.ReadFile('/this/file/does.not.exist')
1141 self.device.ReadFile('/this/file/does.not.exist')
1142 1142
1143 def testReadFile_withSU(self): 1143 def testReadFile_asRoot_withRoot(self):
1144 with self.assertCalls( 1144 self.device.old_interface._privileged_command_runner = (
1145 (self.call.device.NeedsSU(), True), 1145 self.device.old_interface.RunShellCommand)
1146 (self.call.adb.Shell("su -c sh -c 'cat /this/file/can.be.read.with.su'"), 1146 self.device.old_interface._protected_file_access_method_initialized = True
1147 'this is a test file\nread with su')): 1147 with self.assertCallsSequence([
1148 ("adb -s 0123456789abcdef shell "
1149 "'cat \"/this/file/must.be.read.by.root\" 2> /dev/null'",
1150 'this is a test file\nread by root')]):
1148 self.assertEqual( 1151 self.assertEqual(
1149 'this is a test file\nread with su\n', 1152 ['this is a test file', 'read by root'],
1153 self.device.ReadFile('/this/file/must.be.read.by.root',
1154 as_root=True))
1155
1156 def testReadFile_asRoot_withSu(self):
1157 self.device.old_interface._privileged_command_runner = (
1158 self.device.old_interface.RunShellCommandWithSU)
1159 self.device.old_interface._protected_file_access_method_initialized = True
1160 with self.assertCallsSequence([
1161 ("adb -s 0123456789abcdef shell "
1162 "'su -c cat \"/this/file/can.be.read.with.su\" 2> /dev/null'",
1163 'this is a test file\nread with su')]):
1164 self.assertEqual(
1165 ['this is a test file', 'read with su'],
1150 self.device.ReadFile('/this/file/can.be.read.with.su', 1166 self.device.ReadFile('/this/file/can.be.read.with.su',
1151 as_root=True)) 1167 as_root=True))
1152 1168
1169 def testReadFile_asRoot_rejected(self):
1170 self.device.old_interface._privileged_command_runner = None
1171 self.device.old_interface._protected_file_access_method_initialized = True
1172 with self.assertRaises(device_errors.CommandFailedError):
1173 self.device.ReadFile('/this/file/cannot.be.read.by.user',
1174 as_root=True)
1175
1153 1176
1154 class DeviceUtilsWriteFileTest(DeviceUtilsNewImplTest): 1177 class DeviceUtilsWriteFileTest(DeviceUtilsNewImplTest):
1155 1178
1156 def testWriteFile_withPush(self): 1179 def testWriteFile_withPush(self):
1157 tmp_host = MockTempFile('/tmp/file/on.host') 1180 tmp_host = MockTempFile('/tmp/file/on.host')
1158 contents = 'some large contents ' * 26 # 20 * 26 = 520 chars 1181 contents = 'some large contents ' * 26 # 20 * 26 = 520 chars
1159 with self.assertCalls( 1182 with self.assertCalls(
1160 (mock.call.tempfile.NamedTemporaryFile(), tmp_host), 1183 (mock.call.tempfile.NamedTemporaryFile(), tmp_host),
1161 self.call.adb.Push('/tmp/file/on.host', '/path/to/device/file')): 1184 self.call.adb.Push('/tmp/file/on.host', '/path/to/device/file')):
1162 self.device.WriteFile('/path/to/device/file', contents) 1185 self.device.WriteFile('/path/to/device/file', contents)
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after
1508 def testStr_returnsSerial(self): 1531 def testStr_returnsSerial(self):
1509 with self.assertCalls( 1532 with self.assertCalls(
1510 (self.call.adb.GetDeviceSerial(), '0123456789abcdef')): 1533 (self.call.adb.GetDeviceSerial(), '0123456789abcdef')):
1511 self.assertEqual('0123456789abcdef', str(self.device)) 1534 self.assertEqual('0123456789abcdef', str(self.device))
1512 1535
1513 1536
1514 if __name__ == '__main__': 1537 if __name__ == '__main__':
1515 logging.getLogger().setLevel(logging.DEBUG) 1538 logging.getLogger().setLevel(logging.DEBUG)
1516 unittest.main(verbosity=2) 1539 unittest.main(verbosity=2)
1517 1540
OLDNEW
« no previous file with comments | « build/android/pylib/device/device_utils.py ('k') | build/android/pylib/flag_changer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698