Index: tools/telemetry/telemetry/core/platform/android_device_unittest.py |
diff --git a/tools/telemetry/telemetry/core/platform/android_device_unittest.py b/tools/telemetry/telemetry/core/platform/android_device_unittest.py |
index b8a61dd7195aa7b0060420dafdd8f4c854ec42c8..ffc09cf6d2677f64f63862f3987feffbd157935b 100644 |
--- a/tools/telemetry/telemetry/core/platform/android_device_unittest.py |
+++ b/tools/telemetry/telemetry/core/platform/android_device_unittest.py |
@@ -5,135 +5,142 @@ |
import unittest |
from telemetry.core import browser_options |
+from telemetry.core import util |
from telemetry.core.platform import android_device |
-from telemetry.core.platform import android_platform_backend |
from telemetry.unittest_util import system_stub |
+util.AddDirToPythonPath(util.GetChromiumSrcDir(), 'build', 'android') |
+from pylib.device import device_utils # pylint: disable=import-error |
+ |
+util.AddDirToPythonPath(util.GetTelemetryDir(), 'third_party', 'mock') |
+import mock # pylint: disable=import-error |
+ |
class AndroidDeviceTest(unittest.TestCase): |
- def setUp(self): |
- self._android_device_stub = system_stub.Override( |
- android_device, ['adb_commands']) |
def testGetAllAttachedAndroidDevices(self): |
- self._android_device_stub.adb_commands.attached_devices = [ |
- '01', '02'] |
- self.assertEquals( |
- set(['01', '02']), |
- set(device.device_id for device in |
- android_device.AndroidDevice.GetAllConnectedDevices() |
- )) |
- |
- def tearDown(self): |
- self._android_device_stub.Restore() |
+ with mock.patch('pylib.device.device_utils.DeviceUtils.HealthyDevices', |
+ return_value=[ |
+ device_utils.DeviceUtils('01'), |
+ device_utils.DeviceUtils('02')]): |
+ self.assertEquals( |
+ set(['01', '02']), |
+ set(device.device_id for device in |
+ android_device.AndroidDevice.GetAllConnectedDevices())) |
class GetDeviceTest(unittest.TestCase): |
def setUp(self): |
self._android_device_stub = system_stub.Override( |
- android_device, ['adb_commands', 'os', 'subprocess', 'logging']) |
- self._apb_stub = system_stub.Override( |
- android_platform_backend, ['adb_commands']) |
+ android_device, ['subprocess', 'logging']) |
def tearDown(self): |
self._android_device_stub.Restore() |
- self._apb_stub.Restore() |
def testNoAdbReturnsNone(self): |
finder_options = browser_options.BrowserFinderOptions() |
- |
- def NoAdb(*_1, **_2): |
- raise OSError('not found') |
- self._android_device_stub.subprocess.Popen = NoAdb |
- |
- self.assertEquals([], self._android_device_stub.logging.warnings) |
- self.assertIsNone(android_device.GetDevice(finder_options)) |
+ with ( |
+ mock.patch('os.path.isabs', return_value=True)), ( |
+ mock.patch('os.path.exists', return_value=False)): |
+ self.assertEquals([], self._android_device_stub.logging.warnings) |
+ self.assertIsNone(android_device.GetDevice(finder_options)) |
def testAdbNoDevicesReturnsNone(self): |
finder_options = browser_options.BrowserFinderOptions() |
- self.assertEquals([], self._android_device_stub.logging.warnings) |
- self.assertIsNone(android_device.GetDevice(finder_options)) |
- |
- def testAdbPermissionsErrorReturnsNone(self): |
- finder_options = browser_options.BrowserFinderOptions() |
- self._android_device_stub.subprocess.Popen.communicate_result = ( |
- 'List of devices attached\n????????????\tno permissions\n', |
- '* daemon not running. starting it now on port 5037 *\n' |
- '* daemon started successfully *\n') |
- device = android_device.GetDevice(finder_options) |
- self.assertEquals([ |
- 'adb devices gave a permissions error. Consider running adb as root:', |
- ' adb kill-server', |
- ' sudo `which adb` devices\n\n'], |
- self._android_device_stub.logging.warnings) |
- self.assertIsNone(device) |
+ with ( |
+ mock.patch('os.path.isabs', return_value=False)), ( |
+ mock.patch('pylib.device.device_utils.DeviceUtils.HealthyDevices', |
+ return_value=[])): |
+ self.assertEquals([], self._android_device_stub.logging.warnings) |
+ self.assertIsNone(android_device.GetDevice(finder_options)) |
def testAdbTwoDevicesReturnsNone(self): |
finder_options = browser_options.BrowserFinderOptions() |
- self._android_device_stub.adb_commands.attached_devices = [ |
- '015d14fec128220c', '015d14fec128220d'] |
- device = android_device.GetDevice(finder_options) |
- self.assertEquals([ |
- 'Multiple devices attached. Please specify one of the following:\n' |
- ' --device=015d14fec128220c\n' |
- ' --device=015d14fec128220d'], |
- self._android_device_stub.logging.warnings) |
- self.assertIsNone(device) |
+ with ( |
+ mock.patch('os.path.isabs', return_value=False)), ( |
+ mock.patch('pylib.device.device_utils.DeviceUtils.HealthyDevices', |
+ return_value=[ |
+ device_utils.DeviceUtils('015d14fec128220c'), |
+ device_utils.DeviceUtils('015d14fec128220d')])): |
+ device = android_device.GetDevice(finder_options) |
+ self.assertEquals([ |
+ 'Multiple devices attached. Please specify one of the following:\n' |
+ ' --device=015d14fec128220c\n' |
+ ' --device=015d14fec128220d'], |
+ self._android_device_stub.logging.warnings) |
+ self.assertIsNone(device) |
def testAdbPickOneDeviceReturnsDeviceInstance(self): |
finder_options = browser_options.BrowserFinderOptions() |
finder_options.device = '555d14fecddddddd' # pick one |
- self._android_device_stub.adb_commands.attached_devices = [ |
- '015d14fec128220c', '555d14fecddddddd'] |
- device = android_device.GetDevice(finder_options) |
- self.assertEquals([], self._android_device_stub.logging.warnings) |
- self.assertEquals('555d14fecddddddd', device.device_id) |
+ with ( |
+ mock.patch('os.path.isabs', return_value=False)), ( |
+ mock.patch('pylib.device.device_utils.DeviceUtils.HealthyDevices', |
+ return_value=[ |
+ device_utils.DeviceUtils('015d14fec128220c'), |
+ device_utils.DeviceUtils('555d14fecddddddd')])): |
+ device = android_device.GetDevice(finder_options) |
+ self.assertEquals([], self._android_device_stub.logging.warnings) |
+ self.assertEquals('555d14fecddddddd', device.device_id) |
def testAdbOneDeviceReturnsDeviceInstance(self): |
finder_options = browser_options.BrowserFinderOptions() |
- self._android_device_stub.adb_commands.attached_devices = ( |
- ['015d14fec128220c']) |
- device = android_device.GetDevice(finder_options) |
- self.assertEquals([], self._android_device_stub.logging.warnings) |
- self.assertEquals('015d14fec128220c', device.device_id) |
+ with ( |
+ mock.patch('os.path.isabs', return_value=False)), ( |
+ mock.patch('pylib.device.device_utils.DeviceUtils.HealthyDevices', |
+ return_value=[ |
+ device_utils.DeviceUtils('015d14fec128220c')])): |
+ device = android_device.GetDevice(finder_options) |
+ self.assertEquals([], self._android_device_stub.logging.warnings) |
+ self.assertEquals('015d14fec128220c', device.device_id) |
class FindAllAvailableDevicesTest(unittest.TestCase): |
def setUp(self): |
self._android_device_stub = system_stub.Override( |
- android_device, ['adb_commands', 'os', 'subprocess', 'logging']) |
- self._apb_stub = system_stub.Override( |
- android_platform_backend, ['adb_commands']) |
+ android_device, ['subprocess', 'logging']) |
def tearDown(self): |
self._android_device_stub.Restore() |
- self._apb_stub.Restore() |
def testAdbNoDeviceReturnsEmptyList(self): |
finder_options = browser_options.BrowserFinderOptions() |
- devices = android_device.FindAllAvailableDevices(finder_options) |
- self.assertEquals([], self._android_device_stub.logging.warnings) |
- self.assertIsNotNone(devices) |
- self.assertEquals(len(devices), 0) |
+ with ( |
+ mock.patch('os.path.isabs', return_value=False)), ( |
+ mock.patch( |
+ 'pylib.device.device_utils.DeviceUtils.HealthyDevices', |
+ return_value=[])): |
+ devices = android_device.FindAllAvailableDevices(finder_options) |
+ self.assertEquals([], self._android_device_stub.logging.warnings) |
+ self.assertIsNotNone(devices) |
+ self.assertEquals(len(devices), 0) |
def testAdbOneDeviceReturnsListWithOneDeviceInstance(self): |
finder_options = browser_options.BrowserFinderOptions() |
- self._android_device_stub.adb_commands.attached_devices = ( |
- ['015d14fec128220c']) |
- devices = android_device.FindAllAvailableDevices(finder_options) |
- self.assertEquals([], self._android_device_stub.logging.warnings) |
- self.assertIsNotNone(devices) |
- self.assertEquals(len(devices), 1) |
- self.assertEquals('015d14fec128220c', devices[0].device_id) |
+ with ( |
+ mock.patch('os.path.isabs', return_value=False)), ( |
+ mock.patch('pylib.device.device_utils.DeviceUtils.HealthyDevices', |
+ return_value=[ |
+ device_utils.DeviceUtils('015d14fec128220c')])): |
+ devices = android_device.FindAllAvailableDevices(finder_options) |
+ self.assertEquals([], self._android_device_stub.logging.warnings) |
+ self.assertIsNotNone(devices) |
+ self.assertEquals(len(devices), 1) |
+ self.assertEquals('015d14fec128220c', devices[0].device_id) |
def testAdbMultipleDevicesReturnsListWithAllDeviceInstances(self): |
finder_options = browser_options.BrowserFinderOptions() |
- self._android_device_stub.adb_commands.attached_devices = [ |
- '015d14fec128220c', '015d14fec128220d', '015d14fec128220e'] |
- devices = android_device.FindAllAvailableDevices(finder_options) |
- self.assertEquals([], self._android_device_stub.logging.warnings) |
- self.assertIsNotNone(devices) |
- self.assertEquals(len(devices), 3) |
- self.assertEquals(devices[0].guid, '015d14fec128220c') |
- self.assertEquals(devices[1].guid, '015d14fec128220d') |
- self.assertEquals(devices[2].guid, '015d14fec128220e') |
+ with ( |
+ mock.patch('os.path.isabs', return_value=False)), ( |
+ mock.patch('pylib.device.device_utils.DeviceUtils.HealthyDevices', |
+ return_value=[ |
+ device_utils.DeviceUtils('015d14fec128220c'), |
+ device_utils.DeviceUtils('015d14fec128220d'), |
+ device_utils.DeviceUtils('015d14fec128220e')])): |
+ devices = android_device.FindAllAvailableDevices(finder_options) |
+ self.assertEquals([], self._android_device_stub.logging.warnings) |
+ self.assertIsNotNone(devices) |
+ self.assertEquals(len(devices), 3) |
+ self.assertEquals(devices[0].guid, '015d14fec128220c') |
+ self.assertEquals(devices[1].guid, '015d14fec128220d') |
+ self.assertEquals(devices[2].guid, '015d14fec128220e') |