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

Side by Side Diff: build/android/pylib/device/device_utils_test.py

Issue 1281923003: [Android] Add --blacklist-file as a command-line option. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix telemetry_unittests Created 5 years, 4 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 unified diff | Download patch
OLDNEW
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 device_utils.py (mostly DeviceUtils). 7 Unit tests for the contents of device_utils.py (mostly DeviceUtils).
8 """ 8 """
9 9
10 # pylint: disable=C0321 10 # pylint: disable=C0321
11 # pylint: disable=W0212 11 # pylint: disable=W0212
12 # pylint: disable=W0613 12 # pylint: disable=W0613
13 13
14 import collections 14 import collections
15 import datetime 15 import datetime
16 import logging 16 import logging
17 import os 17 import os
18 import re 18 import re
19 import sys 19 import sys
20 import unittest 20 import unittest
21 21
22 from pylib import cmd_helper 22 from pylib import cmd_helper
23 from pylib import constants 23 from pylib import constants
24 from pylib import device_signal 24 from pylib import device_signal
25 from pylib.device import adb_wrapper 25 from pylib.device import adb_wrapper
26 from pylib.device import device_blacklist
26 from pylib.device import device_errors 27 from pylib.device import device_errors
27 from pylib.device import device_utils 28 from pylib.device import device_utils
28 from pylib.device import intent 29 from pylib.device import intent
29 from pylib.sdk import split_select 30 from pylib.sdk import split_select
30 from pylib.utils import mock_calls 31 from pylib.utils import mock_calls
31 32
32 sys.path.append(os.path.join( 33 sys.path.append(os.path.join(
33 constants.DIR_SOURCE_ROOT, 'third_party', 'pymock')) 34 constants.DIR_SOURCE_ROOT, 'third_party', 'pymock'))
34 import mock # pylint: disable=F0401 35 import mock # pylint: disable=F0401
35 36
(...skipping 1826 matching lines...) Expand 10 before | Expand all | Expand 10 after
1862 client_cache_one = self.device.GetClientCache('ClientOne') 1863 client_cache_one = self.device.GetClientCache('ClientOne')
1863 client_cache_one['test'] = 1 1864 client_cache_one['test'] = 1
1864 client_cache_two = self.device.GetClientCache('ClientOne') 1865 client_cache_two = self.device.GetClientCache('ClientOne')
1865 self.assertEqual(client_cache_one, {'test': 1}) 1866 self.assertEqual(client_cache_one, {'test': 1})
1866 self.assertEqual(client_cache_two, {'test': 1}) 1867 self.assertEqual(client_cache_two, {'test': 1})
1867 self.device._ClearCache() 1868 self.device._ClearCache()
1868 self.assertEqual(client_cache_one, {}) 1869 self.assertEqual(client_cache_one, {})
1869 self.assertEqual(client_cache_two, {}) 1870 self.assertEqual(client_cache_two, {})
1870 1871
1871 1872
1872 class DeviceUtilsParallelTest(mock_calls.TestCase):
1873
1874 def testParallel_default(self):
1875 test_serials = ['0123456789abcdef', 'fedcba9876543210']
1876 with self.assertCall(
1877 mock.call.pylib.device.device_utils.DeviceUtils.HealthyDevices(),
1878 [device_utils.DeviceUtils(s) for s in test_serials]):
1879 parallel_devices = device_utils.DeviceUtils.parallel()
1880 for serial, device in zip(test_serials, parallel_devices.pGet(None)):
1881 self.assertTrue(isinstance(device, device_utils.DeviceUtils))
1882 self.assertEquals(serial, device.adb.GetDeviceSerial())
1883
1884 def testParallel_noDevices(self):
1885 with self.assertCall(
1886 mock.call.pylib.device.device_utils.DeviceUtils.HealthyDevices(), []):
1887 with self.assertRaises(device_errors.NoDevicesError):
1888 device_utils.DeviceUtils.parallel()
1889
1890
1891 class DeviceUtilsHealthyDevicesTest(mock_calls.TestCase): 1873 class DeviceUtilsHealthyDevicesTest(mock_calls.TestCase):
1892 1874
1893 def _createAdbWrapperMock(self, serial, is_ready=True): 1875 def _createAdbWrapperMock(self, serial, is_ready=True):
1894 adb = _AdbWrapperMock(serial) 1876 adb = _AdbWrapperMock(serial)
1895 adb.is_ready = is_ready 1877 adb.is_ready = is_ready
1896 return adb 1878 return adb
1897 1879
1898 def testHealthyDevices_default(self): 1880 def testHealthyDevices_emptyBlacklist(self):
1899 test_serials = ['0123456789abcdef', 'fedcba9876543210'] 1881 test_serials = ['0123456789abcdef', 'fedcba9876543210']
1900 with self.assertCalls( 1882 with self.assertCalls(
1901 (mock.call.pylib.device.device_blacklist.ReadBlacklist(), []),
1902 (mock.call.pylib.device.adb_wrapper.AdbWrapper.Devices(), 1883 (mock.call.pylib.device.adb_wrapper.AdbWrapper.Devices(),
1903 [self._createAdbWrapperMock(s) for s in test_serials])): 1884 [self._createAdbWrapperMock(s) for s in test_serials])):
1904 devices = device_utils.DeviceUtils.HealthyDevices() 1885 blacklist = mock.NonCallableMock(**{'Read.return_value': []})
1886 devices = device_utils.DeviceUtils.HealthyDevices(blacklist)
1905 for serial, device in zip(test_serials, devices): 1887 for serial, device in zip(test_serials, devices):
1906 self.assertTrue(isinstance(device, device_utils.DeviceUtils)) 1888 self.assertTrue(isinstance(device, device_utils.DeviceUtils))
1907 self.assertEquals(serial, device.adb.GetDeviceSerial()) 1889 self.assertEquals(serial, device.adb.GetDeviceSerial())
1908 1890
1909 def testHealthyDevices_blacklisted(self): 1891 def testHealthyDevices_blacklist(self):
1910 test_serials = ['0123456789abcdef', 'fedcba9876543210'] 1892 test_serials = ['0123456789abcdef', 'fedcba9876543210']
1911 with self.assertCalls( 1893 with self.assertCalls(
1912 (mock.call.pylib.device.device_blacklist.ReadBlacklist(),
1913 ['fedcba9876543210']),
1914 (mock.call.pylib.device.adb_wrapper.AdbWrapper.Devices(), 1894 (mock.call.pylib.device.adb_wrapper.AdbWrapper.Devices(),
1915 [self._createAdbWrapperMock(s) for s in test_serials])): 1895 [self._createAdbWrapperMock(s) for s in test_serials])):
1916 devices = device_utils.DeviceUtils.HealthyDevices() 1896 blacklist = mock.NonCallableMock(
1897 **{'Read.return_value': ['fedcba9876543210']})
1898 devices = device_utils.DeviceUtils.HealthyDevices(blacklist)
1917 self.assertEquals(1, len(devices)) 1899 self.assertEquals(1, len(devices))
1918 self.assertTrue(isinstance(devices[0], device_utils.DeviceUtils)) 1900 self.assertTrue(isinstance(devices[0], device_utils.DeviceUtils))
1919 self.assertEquals('0123456789abcdef', devices[0].adb.GetDeviceSerial()) 1901 self.assertEquals('0123456789abcdef', devices[0].adb.GetDeviceSerial())
1920 1902
1921 1903
1922 class DeviceUtilsRestartAdbdTest(DeviceUtilsTest): 1904 class DeviceUtilsRestartAdbdTest(DeviceUtilsTest):
1923 1905
1924 def testAdbdRestart(self): 1906 def testAdbdRestart(self):
1925 mock_temp_file = '/sdcard/temp-123.sh' 1907 mock_temp_file = '/sdcard/temp-123.sh'
1926 with self.assertCalls( 1908 with self.assertCalls(
1927 (mock.call.pylib.utils.device_temp_file.DeviceTempFile( 1909 (mock.call.pylib.utils.device_temp_file.DeviceTempFile(
1928 self.adb, suffix='.sh'), MockTempFile(mock_temp_file)), 1910 self.adb, suffix='.sh'), MockTempFile(mock_temp_file)),
1929 self.call.device.WriteFile(mock.ANY, mock.ANY), 1911 self.call.device.WriteFile(mock.ANY, mock.ANY),
1930 (self.call.device.RunShellCommand( 1912 (self.call.device.RunShellCommand(
1931 ['source', mock_temp_file ], as_root=True)), 1913 ['source', mock_temp_file ], as_root=True)),
1932 self.call.adb.WaitForDevice()): 1914 self.call.adb.WaitForDevice()):
1933 self.device.RestartAdbd() 1915 self.device.RestartAdbd()
1934 1916
1935 1917
1936 if __name__ == '__main__': 1918 if __name__ == '__main__':
1937 logging.getLogger().setLevel(logging.DEBUG) 1919 logging.getLogger().setLevel(logging.DEBUG)
1938 unittest.main(verbosity=2) 1920 unittest.main(verbosity=2)
OLDNEW
« no previous file with comments | « build/android/pylib/device/device_utils.py ('k') | build/android/pylib/host_driven/test_case.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698