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

Unified Diff: tools/telemetry/telemetry/core/platform/android_device_unittest.py

Issue 1211323004: [Telemetry] Remove adb_commands usage from android_device (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add the step of setting up PATH variable with adb back Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
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 efeda96751a1b41fc6e6bd0d61fb80cb0e8cfd63..50e088a9734f310b84ae6ef30d72783d90302799 100644
--- a/tools/telemetry/telemetry/core/platform/android_device_unittest.py
+++ b/tools/telemetry/telemetry/core/platform/android_device_unittest.py
@@ -4,136 +4,122 @@
import unittest
+from telemetry.core import util
from telemetry.core.platform import android_device
-from telemetry.core.platform import android_platform_backend
from telemetry.internal.browser import browser_options
from telemetry.unittest_util import system_stub
+util.AddDirToPythonPath(util.GetChromiumSrcDir(), 'build', 'android')
+from pylib.device import adb_wrapper # pylint: disable=import-error
-class AndroidDeviceTest(unittest.TestCase):
- def setUp(self):
- self._android_device_stub = system_stub.Override(
- android_device, ['adb_commands'])
+util.AddDirToPythonPath(util.GetTelemetryDir(), 'third_party', 'mock')
+import mock # pylint: disable=import-error
- 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()
-
-
-class GetDeviceTest(unittest.TestCase):
+class _BaseAndroidDeviceTest(unittest.TestCase):
def setUp(self):
+ self._devices_patcher = mock.patch(
+ 'pylib.device.adb_wrapper.AdbWrapper.Devices')
+ self._healthy_device_mock = self._devices_patcher.start()
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._devices_patcher.stop()
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))
+class AndroidDeviceTest(_BaseAndroidDeviceTest):
+ def testGetAllAttachedAndroidDevices(self):
+ self._healthy_device_mock.return_value = [
+ adb_wrapper.AdbWrapper('01'), adb_wrapper.AdbWrapper('02')]
+ self.assertEquals(
+ set(['01', '02']),
+ set(device.device_id for device in
+ android_device.AndroidDevice.GetAllConnectedDevices()))
- def testAdbNoDevicesReturnsNone(self):
+ def testNoAdbReturnsNone(self):
finder_options = browser_options.BrowserFinderOptions()
- 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 testAdbPermissionsErrorReturnsNone(self):
+ def testAdbNoDevicesReturnsNone(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):
+ self._healthy_device_mock.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):
+ self._healthy_device_mock.return_value = [
+ adb_wrapper.AdbWrapper('015d14fec128220c'),
+ adb_wrapper.AdbWrapper('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):
+ self._healthy_device_mock.return_value = [
+ adb_wrapper.AdbWrapper('015d14fec128220c'),
+ adb_wrapper.AdbWrapper('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):
+ self._healthy_device_mock.return_value = [
+ adb_wrapper.AdbWrapper('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'])
-
- def tearDown(self):
- self._android_device_stub.Restore()
- self._apb_stub.Restore()
-
+class FindAllAvailableDevicesTest(_BaseAndroidDeviceTest):
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):
+ self._healthy_device_mock.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):
+ self._healthy_device_mock.return_value = [
+ adb_wrapper.AdbWrapper('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):
+ self._healthy_device_mock.return_value = [
+ adb_wrapper.AdbWrapper('015d14fec128220c'),
+ adb_wrapper.AdbWrapper('015d14fec128220d'),
+ adb_wrapper.AdbWrapper('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')

Powered by Google App Engine
This is Rietveld 408576698