| 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 mock_calls.py. | 7 Unit tests for the contents of mock_calls.py. |
| 8 """ | 8 """ |
| 9 | 9 |
| 10 import logging | 10 import logging |
| 11 import os | 11 import os |
| 12 import sys | 12 import sys |
| 13 import unittest | 13 import unittest |
| 14 | 14 |
| 15 from devil.android.sdk import version_codes |
| 15 from devil.utils import mock_calls | 16 from devil.utils import mock_calls |
| 16 from pylib import constants | 17 from pylib import constants |
| 17 | 18 |
| 18 sys.path.append(os.path.join( | 19 sys.path.append(os.path.join( |
| 19 constants.DIR_SOURCE_ROOT, 'third_party', 'pymock')) | 20 constants.DIR_SOURCE_ROOT, 'third_party', 'pymock')) |
| 20 import mock # pylint: disable=F0401 | 21 import mock # pylint: disable=F0401 |
| 21 | 22 |
| 22 | 23 |
| 23 class _DummyAdb(object): | 24 class _DummyAdb(object): |
| 24 def __str__(self): | 25 def __str__(self): |
| 25 return '0123456789abcdef' | 26 return '0123456789abcdef' |
| 26 | 27 |
| 27 def Push(self, host_path, device_path): | 28 def Push(self, host_path, device_path): |
| 28 logging.debug('(device %s) pushing %r to %r', self, host_path, device_path) | 29 logging.debug('(device %s) pushing %r to %r', self, host_path, device_path) |
| 29 | 30 |
| 30 def IsOnline(self): | 31 def IsOnline(self): |
| 31 logging.debug('(device %s) checking device online', self) | 32 logging.debug('(device %s) checking device online', self) |
| 32 return True | 33 return True |
| 33 | 34 |
| 34 def Shell(self, cmd): | 35 def Shell(self, cmd): |
| 35 logging.debug('(device %s) running command %r', self, cmd) | 36 logging.debug('(device %s) running command %r', self, cmd) |
| 36 return "nice output\n" | 37 return "nice output\n" |
| 37 | 38 |
| 38 def Reboot(self): | 39 def Reboot(self): |
| 39 logging.debug('(device %s) rebooted!', self) | 40 logging.debug('(device %s) rebooted!', self) |
| 40 | 41 |
| 41 @property | 42 @property |
| 42 def build_version_sdk(self): | 43 def build_version_sdk(self): |
| 43 logging.debug('(device %s) getting build_version_sdk', self) | 44 logging.debug('(device %s) getting build_version_sdk', self) |
| 44 return constants.ANDROID_SDK_VERSION_CODES.LOLLIPOP | 45 return version_codes.LOLLIPOP |
| 45 | 46 |
| 46 | 47 |
| 47 class TestCaseWithAssertCallsTest(mock_calls.TestCase): | 48 class TestCaseWithAssertCallsTest(mock_calls.TestCase): |
| 48 def setUp(self): | 49 def setUp(self): |
| 49 self.adb = _DummyAdb() | 50 self.adb = _DummyAdb() |
| 50 | 51 |
| 51 def ShellError(self): | 52 def ShellError(self): |
| 52 def action(cmd): | 53 def action(cmd): |
| 53 raise ValueError('(device %s) command %r is not nice' % (self.adb, cmd)) | 54 raise ValueError('(device %s) command %r is not nice' % (self.adb, cmd)) |
| 54 return action | 55 return action |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 def testPatchCall_global(self): | 91 def testPatchCall_global(self): |
| 91 with self.patch_call(mock.call.os.getcwd, return_value='/some/path'): | 92 with self.patch_call(mock.call.os.getcwd, return_value='/some/path'): |
| 92 self.assertEquals('/some/path', os.getcwd()) | 93 self.assertEquals('/some/path', os.getcwd()) |
| 93 | 94 |
| 94 def testPatchCall_withSideEffect(self): | 95 def testPatchCall_withSideEffect(self): |
| 95 with self.patch_call(self.call.adb.Shell, side_effect=ValueError): | 96 with self.patch_call(self.call.adb.Shell, side_effect=ValueError): |
| 96 with self.assertRaises(ValueError): | 97 with self.assertRaises(ValueError): |
| 97 self.adb.Shell('echo hello') | 98 self.adb.Shell('echo hello') |
| 98 | 99 |
| 99 def testPatchCall_property(self): | 100 def testPatchCall_property(self): |
| 100 self.assertEquals(constants.ANDROID_SDK_VERSION_CODES.LOLLIPOP, | 101 self.assertEquals(version_codes.LOLLIPOP, self.adb.build_version_sdk) |
| 101 self.adb.build_version_sdk) | |
| 102 with self.patch_call( | 102 with self.patch_call( |
| 103 self.call.adb.build_version_sdk, | 103 self.call.adb.build_version_sdk, |
| 104 return_value=constants.ANDROID_SDK_VERSION_CODES.KITKAT): | 104 return_value=version_codes.KITKAT): |
| 105 self.assertEquals(constants.ANDROID_SDK_VERSION_CODES.KITKAT, | 105 self.assertEquals(version_codes.KITKAT, self.adb.build_version_sdk) |
| 106 self.adb.build_version_sdk) | 106 self.assertEquals(version_codes.LOLLIPOP, self.adb.build_version_sdk) |
| 107 self.assertEquals(constants.ANDROID_SDK_VERSION_CODES.LOLLIPOP, | |
| 108 self.adb.build_version_sdk) | |
| 109 | 107 |
| 110 def testAssertCalls_succeeds_simple(self): | 108 def testAssertCalls_succeeds_simple(self): |
| 111 self.assertEquals(42, self.get_answer()) | 109 self.assertEquals(42, self.get_answer()) |
| 112 with self.assertCall(self.call.get_answer(), 123): | 110 with self.assertCall(self.call.get_answer(), 123): |
| 113 self.assertEquals(123, self.get_answer()) | 111 self.assertEquals(123, self.get_answer()) |
| 114 self.assertEquals(42, self.get_answer()) | 112 self.assertEquals(42, self.get_answer()) |
| 115 | 113 |
| 116 def testAssertCalls_succeeds_multiple(self): | 114 def testAssertCalls_succeeds_multiple(self): |
| 117 with self.assertCalls( | 115 with self.assertCalls( |
| 118 (mock.call.os.getcwd(), '/some/path'), | 116 (mock.call.os.getcwd(), '/some/path'), |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 self.watchMethodCalls(self.call.adb) | 164 self.watchMethodCalls(self.call.adb) |
| 167 with self.assertRaises(AssertionError): | 165 with self.assertRaises(AssertionError): |
| 168 with self.assertCalls(): | 166 with self.assertCalls(): |
| 169 self.adb.IsOnline() | 167 self.adb.IsOnline() |
| 170 | 168 |
| 171 | 169 |
| 172 if __name__ == '__main__': | 170 if __name__ == '__main__': |
| 173 logging.getLogger().setLevel(logging.DEBUG) | 171 logging.getLogger().setLevel(logging.DEBUG) |
| 174 unittest.main(verbosity=2) | 172 unittest.main(verbosity=2) |
| 175 | 173 |
| OLD | NEW |