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

Side by Side Diff: build/android/devil/android/md5sum_test.py

Issue 1416703003: [Android] Add a configurable environment for devil/. (RELAND 2) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 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
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 import os 6 import os
7 import sys 7 import sys
8 import unittest 8 import unittest
9 9
10 from devil import devil_env
10 from devil.android import device_errors 11 from devil.android import device_errors
11 from devil.android import md5sum 12 from devil.android import md5sum
12 from pylib import constants
13 13
14 sys.path.append( 14 sys.path.append(devil_env.config.LocalPath('pymock'))
15 os.path.join(constants.DIR_SOURCE_ROOT, 'third_party', 'pymock'))
16 import mock # pylint: disable=import-error 15 import mock # pylint: disable=import-error
17 16
18 TEST_OUT_DIR = os.path.join('test', 'out', 'directory') 17 TEST_OUT_DIR = os.path.join('test', 'out', 'directory')
19 HOST_MD5_EXECUTABLE = os.path.join(TEST_OUT_DIR, 'md5sum_bin_host') 18 HOST_MD5_EXECUTABLE = os.path.join(TEST_OUT_DIR, 'md5sum_bin_host')
19 MD5_DIST = os.path.join(TEST_OUT_DIR, 'md5sum_dist')
20 20
21 class Md5SumTest(unittest.TestCase): 21 class Md5SumTest(unittest.TestCase):
22 22
23 def setUp(self): 23 def setUp(self):
24 mocked_attrs = {
25 'md5sum_host': HOST_MD5_EXECUTABLE,
26 'md5sum_device': MD5_DIST,
27 }
24 self._patchers = [ 28 self._patchers = [
25 mock.patch('pylib.constants.GetOutDirectory', 29 mock.patch('devil.devil_env._Environment.FetchPath',
26 new=mock.Mock(return_value=TEST_OUT_DIR)), 30 mock.Mock(side_effect=lambda a, device=None: mocked_attrs[a])),
27 mock.patch('os.path.exists', 31 mock.patch('os.path.exists',
28 new=mock.Mock(return_value=True)), 32 new=mock.Mock(return_value=True)),
29 ] 33 ]
30 for p in self._patchers: 34 for p in self._patchers:
31 p.start() 35 p.start()
32 36
33 def tearDown(self): 37 def tearDown(self):
34 for p in self._patchers: 38 for p in self._patchers:
35 p.stop() 39 p.stop()
36 40
37 def testCalculateHostMd5Sums_singlePath(self): 41 def testCalculateHostMd5Sums_singlePath(self):
38 test_path = '/test/host/file.dat' 42 test_path = '/test/host/file.dat'
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 'WARNING: linker: /data/local/tmp/md5sum/md5sum_bin: ' 214 'WARNING: linker: /data/local/tmp/md5sum/md5sum_bin: '
211 'unused DT entry: type 0x1d arg 0x15db', 215 'unused DT entry: type 0x1d arg 0x15db',
212 'THIS_IS_NOT_A_VALID_CHECKSUM_ZZZ some random text', 216 'THIS_IS_NOT_A_VALID_CHECKSUM_ZZZ some random text',
213 '0123456789abcdeffedcba9876543210 ' 217 '0123456789abcdeffedcba9876543210 '
214 '/storage/emulated/legacy/test/file.dat', 218 '/storage/emulated/legacy/test/file.dat',
215 ] 219 ]
216 error = device_errors.AdbShellCommandFailedError('cmd', 'out', 2) 220 error = device_errors.AdbShellCommandFailedError('cmd', 'out', 2)
217 device.RunShellCommand = mock.Mock( 221 device.RunShellCommand = mock.Mock(
218 side_effect=(error, '', device_md5sum_output)) 222 side_effect=(error, '', device_md5sum_output))
219 223
220 with mock.patch('os.path.getsize', return_value=1337): 224 with mock.patch('os.path.isdir', return_value=True), (
225 mock.patch('os.path.getsize', return_value=1337)):
221 out = md5sum.CalculateDeviceMd5Sums(test_path, device) 226 out = md5sum.CalculateDeviceMd5Sums(test_path, device)
222 self.assertEquals(1, len(out)) 227 self.assertEquals(1, len(out))
223 self.assertTrue('/storage/emulated/legacy/test/file.dat' in out) 228 self.assertTrue('/storage/emulated/legacy/test/file.dat' in out)
224 self.assertEquals('0123456789abcdeffedcba9876543210', 229 self.assertEquals('0123456789abcdeffedcba9876543210',
225 out['/storage/emulated/legacy/test/file.dat']) 230 out['/storage/emulated/legacy/test/file.dat'])
226 self.assertEquals(3, len(device.RunShellCommand.call_args_list)) 231 self.assertEquals(3, len(device.RunShellCommand.call_args_list))
227 device.adb.Push.assert_called_once_with( 232 device.adb.Push.assert_called_once_with(
228 'test/out/directory/md5sum_dist', '/data/local/tmp/md5sum') 233 'test/out/directory/md5sum_dist', '/data/local/tmp/md5sum')
229 234
230 235
231 if __name__ == '__main__': 236 if __name__ == '__main__':
232 unittest.main(verbosity=2) 237 unittest.main(verbosity=2)
233 238
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698