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 ffc09cf6d2677f64f63862f3987feffbd157935b..b8a61dd7195aa7b0060420dafdd8f4c854ec42c8 100644 |
--- a/tools/telemetry/telemetry/core/platform/android_device_unittest.py |
+++ b/tools/telemetry/telemetry/core/platform/android_device_unittest.py |
@@ -5,142 +5,135 @@ |
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): |
- 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())) |
+ 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() |
class GetDeviceTest(unittest.TestCase): |
def setUp(self): |
self._android_device_stub = system_stub.Override( |
- android_device, ['subprocess', 'logging']) |
+ android_device, ['adb_commands', 'os', 'subprocess', 'logging']) |
+ self._apb_stub = system_stub.Override( |
+ android_platform_backend, ['adb_commands']) |
def tearDown(self): |
self._android_device_stub.Restore() |
+ self._apb_stub.Restore() |
def testNoAdbReturnsNone(self): |
finder_options = browser_options.BrowserFinderOptions() |
- 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 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)) |
def testAdbNoDevicesReturnsNone(self): |
finder_options = browser_options.BrowserFinderOptions() |
- 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)) |
+ 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) |
def testAdbTwoDevicesReturnsNone(self): |
finder_options = browser_options.BrowserFinderOptions() |
- 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) |
+ 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) |
def testAdbPickOneDeviceReturnsDeviceInstance(self): |
finder_options = browser_options.BrowserFinderOptions() |
finder_options.device = '555d14fecddddddd' # pick one |
- 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) |
+ 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) |
def testAdbOneDeviceReturnsDeviceInstance(self): |
finder_options = browser_options.BrowserFinderOptions() |
- 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) |
+ 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) |
class FindAllAvailableDevicesTest(unittest.TestCase): |
def setUp(self): |
self._android_device_stub = system_stub.Override( |
- android_device, ['subprocess', 'logging']) |
+ android_device, ['adb_commands', 'os', 'subprocess', 'logging']) |
+ self._apb_stub = system_stub.Override( |
+ android_platform_backend, ['adb_commands']) |
def tearDown(self): |
self._android_device_stub.Restore() |
+ self._apb_stub.Restore() |
def testAdbNoDeviceReturnsEmptyList(self): |
finder_options = browser_options.BrowserFinderOptions() |
- 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) |
+ 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() |
- 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) |
+ 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) |
def testAdbMultipleDevicesReturnsListWithAllDeviceInstances(self): |
finder_options = browser_options.BrowserFinderOptions() |
- 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') |
+ 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') |