| 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')
|
|
|