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

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

Issue 1399273002: [Android] Add a configurable environment for devil/. (RELAND) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed: more non-default directory handling, especially for gyp_managed_install Created 5 years, 2 months 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 """ 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=protected-access 10 # pylint: disable=protected-access
11 # pylint: disable=unused-argument 11 # pylint: disable=unused-argument
12 12
13 import logging 13 import logging
14 import os
15 import sys 14 import sys
16 import unittest 15 import unittest
17 16
17 from devil import devil_env
18 from devil.android import device_errors 18 from devil.android import device_errors
19 from devil.android import device_signal 19 from devil.android import device_signal
20 from devil.android import device_utils 20 from devil.android import device_utils
21 from devil.android.sdk import adb_wrapper 21 from devil.android.sdk import adb_wrapper
22 from devil.android.sdk import intent 22 from devil.android.sdk import intent
23 from devil.android.sdk import version_codes 23 from devil.android.sdk import version_codes
24 from devil.utils import cmd_helper 24 from devil.utils import cmd_helper
25 from devil.utils import mock_calls 25 from devil.utils import mock_calls
26 from pylib import constants
27 26
28 sys.path.append(os.path.join( 27 sys.path.append(devil_env.config.pymock_path)
29 constants.DIR_SOURCE_ROOT, 'third_party', 'pymock'))
30 import mock # pylint: disable=F0401 28 import mock # pylint: disable=F0401
31 29
32 30
33 class _MockApkHelper(object): 31 class _MockApkHelper(object):
34 def __init__(self, path, package_name, perms=None): 32 def __init__(self, path, package_name, perms=None):
35 self.path = path 33 self.path = path
36 self.package_name = package_name 34 self.package_name = package_name
37 self.perms = perms 35 self.perms = perms
38 36
39 def GetPackageName(self): 37 def GetPackageName(self):
(...skipping 24 matching lines...) Expand all
64 def testInitWithMissing_fails(self): 62 def testInitWithMissing_fails(self):
65 with self.assertRaises(ValueError): 63 with self.assertRaises(ValueError):
66 device_utils.DeviceUtils(None) 64 device_utils.DeviceUtils(None)
67 with self.assertRaises(ValueError): 65 with self.assertRaises(ValueError):
68 device_utils.DeviceUtils('') 66 device_utils.DeviceUtils('')
69 67
70 68
71 class DeviceUtilsGetAVDsTest(mock_calls.TestCase): 69 class DeviceUtilsGetAVDsTest(mock_calls.TestCase):
72 70
73 def testGetAVDs(self): 71 def testGetAVDs(self):
74 with self.assertCall( 72 mocked_attrs = {
75 mock.call.devil.utils.cmd_helper.GetCmdOutput( 73 'android_sdk_path': '/my/sdk/path'
76 [mock.ANY, 'list', 'avd']), 74 }
77 'Available Android Virtual Devices:\n' 75 with mock.patch('devil.devil_env._Environment.__getattr__',
78 ' Name: my_android5.0\n' 76 mock.Mock(side_effect=lambda a: mocked_attrs[a])):
79 ' Path: /some/path/to/.android/avd/my_android5.0.avd\n' 77 with self.assertCall(
80 ' Target: Android 5.0 (API level 21)\n' 78 mock.call.devil.utils.cmd_helper.GetCmdOutput(
81 ' Tag/ABI: default/x86\n' 79 [mock.ANY, 'list', 'avd']),
82 ' Skin: WVGA800\n'): 80 'Available Android Virtual Devices:\n'
83 self.assertEquals(['my_android5.0'], 81 ' Name: my_android5.0\n'
84 device_utils.GetAVDs()) 82 ' Path: /some/path/to/.android/avd/my_android5.0.avd\n'
83 ' Target: Android 5.0 (API level 21)\n'
84 ' Tag/ABI: default/x86\n'
85 ' Skin: WVGA800\n'):
86 self.assertEquals(['my_android5.0'], device_utils.GetAVDs())
85 87
86 88
87 class DeviceUtilsRestartServerTest(mock_calls.TestCase): 89 class DeviceUtilsRestartServerTest(mock_calls.TestCase):
88 90
89 @mock.patch('time.sleep', mock.Mock()) 91 @mock.patch('time.sleep', mock.Mock())
90 def testRestartServer_succeeds(self): 92 def testRestartServer_succeeds(self):
91 with self.assertCalls( 93 with self.assertCalls(
92 mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.KillServer(), 94 mock.call.devil.android.sdk.adb_wrapper.AdbWrapper.KillServer(),
93 (mock.call.devil.utils.cmd_helper.GetCmdStatusAndOutput( 95 (mock.call.devil.utils.cmd_helper.GetCmdStatusAndOutput(
94 ['pgrep', 'adb']), 96 ['pgrep', 'adb']),
(...skipping 2035 matching lines...) Expand 10 before | Expand all | Expand 10 after
2130 def testGrantPermissions_BlackList(self): 2132 def testGrantPermissions_BlackList(self):
2131 with self.patch_call( 2133 with self.patch_call(
2132 self.call.device.build_version_sdk, return_value=23): 2134 self.call.device.build_version_sdk, return_value=23):
2133 self.device.GrantPermissions( 2135 self.device.GrantPermissions(
2134 'package', ['android.permission.ACCESS_MOCK_LOCATION']) 2136 'package', ['android.permission.ACCESS_MOCK_LOCATION'])
2135 2137
2136 2138
2137 if __name__ == '__main__': 2139 if __name__ == '__main__':
2138 logging.getLogger().setLevel(logging.DEBUG) 2140 logging.getLogger().setLevel(logging.DEBUG)
2139 unittest.main(verbosity=2) 2141 unittest.main(verbosity=2)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698