def setUp(self): self._finder_options = browser_options.BrowserFinderOptions() self._finder_options.chrome_root = '../../../' self._finder_stubs = system_stub.Override(desktop_browser_finder, ['os', 'subprocess', 'sys']) self._path_stubs = system_stub.Override( desktop_browser_finder.path_module, ['os', 'sys'])
def setUp(self): self._finder_options = browser_options.BrowserFinderOptions() self._finder_options.chrome_root = '../../../' self._finder_stubs = system_stub.Override(desktop_mandoline_finder, ['os', 'subprocess', 'sys']) self._path_stubs = system_stub.Override(desktop_mandoline_finder.path, ['os', 'sys']) self._catapult_path_stubs = system_stub.Override( desktop_mandoline_finder.path.catapult_util, ['os', 'sys'])
def testGetFilesInDirectoryIfChanged(self): stubs = system_stub.Override(cloud_storage, ['os']) stubs.os._directory = { 'dir1': ['1file1.sha1', '1file2.txt', '1file3.sha1'], 'dir2': ['2file.txt'], 'dir3': ['3file1.sha1'] } stubs.os.path.dirs = ['real_dir_path'] def IncrementFilesUpdated(*_): IncrementFilesUpdated.files_updated += 1 IncrementFilesUpdated.files_updated = 0 orig_get_if_changed = cloud_storage.GetIfChanged cloud_storage.GetIfChanged = IncrementFilesUpdated try: self.assertRaises(ValueError, cloud_storage.GetFilesInDirectoryIfChanged, os.path.abspath(os.sep), cloud_storage.PUBLIC_BUCKET) self.assertEqual(0, IncrementFilesUpdated.files_updated) self.assertRaises(ValueError, cloud_storage.GetFilesInDirectoryIfChanged, 'fake_dir_path', cloud_storage.PUBLIC_BUCKET) self.assertEqual(0, IncrementFilesUpdated.files_updated) cloud_storage.GetFilesInDirectoryIfChanged( 'real_dir_path', cloud_storage.PUBLIC_BUCKET) self.assertEqual(3, IncrementFilesUpdated.files_updated) finally: cloud_storage.GetIfChanged = orig_get_if_changed stubs.Restore()
def setUp(self): self._options = options_for_unittests.GetCopy() self._stubs = system_stub.Override(android_platform_backend, ['perf_control']) self.battery_patcher = mock.patch.object(battery_utils, 'BatteryUtils') self.battery_patcher.start() self._actual_ps_util = android_platform_backend.psutil self.setup_prebuilt_tool_patcher = mock.patch( 'telemetry.internal.platform.android_platform_backend._SetupPrebuiltTools') # pylint: disable=line-too-long m = self.setup_prebuilt_tool_patcher.start() m.return_value = True def get_prop(name, cache=None): return {'ro.product.cpu.abi': 'armeabi-v7a'}.get(name) self.helper_patcher = mock.patch( 'telemetry.internal.platform.android_platform_backend._SetupPrebuiltTools', # pylint: disable=line-too-long return_value=True) self.helper_patcher.start() self.device_patcher = mock.patch.multiple( device_utils.DeviceUtils, FileExists=mock.MagicMock(return_value=False), GetProp=mock.MagicMock(side_effect=get_prop), HasRoot=mock.MagicMock(return_value=True)) self.device_patcher.start()
def testGetIfChanged(self): stubs = system_stub.Override(cloud_storage, ['os', 'open']) orig_get = cloud_storage.Get orig_read_hash = cloud_storage.ReadHash orig_calculate_hash = cloud_storage.CalculateHash cloud_storage.ReadHash = _FakeReadHash cloud_storage.CalculateHash = _FakeCalulateHashMatchesRead file_path = 'test-file-path.wpr' hash_path = file_path + '.sha1' try: cloud_storage.Get = self._FakeGet # hash_path doesn't exist. self.assertFalse(cloud_storage.GetIfChanged(file_path, cloud_storage.PUBLIC_BUCKET)) # hash_path exists, but file_path doesn't. stubs.os.path.files.append(hash_path) self.assertTrue(cloud_storage.GetIfChanged(file_path, cloud_storage.PUBLIC_BUCKET)) # hash_path and file_path exist, and have same hash. stubs.os.path.files.append(file_path) self.assertFalse(cloud_storage.GetIfChanged(file_path, cloud_storage.PUBLIC_BUCKET)) # hash_path and file_path exist, and have different hashes. cloud_storage.CalculateHash = _FakeCalulateHashNewHash self.assertTrue(cloud_storage.GetIfChanged(file_path, cloud_storage.PUBLIC_BUCKET)) finally: stubs.Restore() cloud_storage.Get = orig_get cloud_storage.CalculateHash = orig_calculate_hash cloud_storage.ReadHash = orig_read_hash
def setUp(self): self._options = options_for_unittests.GetCopy() self._stubs = system_stub.Override(android_platform_backend, [ 'perf_control', 'thermal_throttle', 'certutils', 'adb_install_cert', 'platformsettings' ]) # Skip _FixPossibleAdbInstability by setting psutil to None. self._actual_ps_util = android_platform_backend.psutil android_platform_backend.psutil = None self.battery_patcher = mock.patch.object(battery_utils, 'BatteryUtils') self.battery_patcher.start() def get_prop(name, cache=None): return {'ro.product.cpu.abi': 'armeabi-v7a'}.get(name) self.setup_prebuilt_tool_patcher = mock.patch( 'telemetry.internal.platform.android_platform_backend._SetupPrebuiltTools') # pylint: disable=line-too-long m = self.setup_prebuilt_tool_patcher.start() m.return_value = True self.device_patcher = mock.patch.multiple( device_utils.DeviceUtils, HasRoot=mock.MagicMock(return_value=True), GetProp=mock.MagicMock(side_effect=get_prop)) self.device_patcher.start()
def setUp(self): self.finder_options = options_for_unittests.GetCopy() # Mock out what's needed for testing with exact APKs self._android_browser_finder_stub = system_stub.Override( android_browser_finder, ['os']) self._patcher = mock.patch('devil.android.apk_helper.GetPackageName') self._get_package_name_mock = self._patcher.start()
def setUp(self): self.finder_options = browser_options.BrowserFinderOptions() # Mock out what's needed for testing with exact APKs self._android_browser_finder_stub = system_stub.Override( android_browser_finder, ['os']) self._patcher = mock.patch('pylib.utils.apk_helper.GetPackageName') self._get_package_name_mock = self._patcher.start()
def setUp(self): self.log_output = StringIO.StringIO() self.stream_handler = logging.StreamHandler(self.log_output) logging.getLogger().addHandler(self.stream_handler) self._real_subprocess = trybot_browser_finder.subprocess self._real_urllib2 = trybot_browser_finder.urllib2 self._stubs = system_stub.Override(trybot_browser_finder, ['sys', 'open', 'os'])
def setUp(self): self.log_output = StringIO.StringIO() self.stream_handler = logging.StreamHandler(self.log_output) logging.getLogger().addHandler(self.stream_handler) self._subprocess_patcher = mock.patch('core.trybot_command.subprocess') self._mock_subprocess = self._subprocess_patcher.start() self._urllib2_patcher = mock.patch('core.trybot_command.urllib2') self._urllib2_mock = self._urllib2_patcher.start() self._stubs = system_stub.Override(trybot_command, ['sys', 'open', 'os'])
def testExistsReturnsFalse(self): stubs = system_stub.Override(cloud_storage, ['subprocess']) try: stubs.subprocess.Popen.communicate_result = ( '', 'CommandException: One or more URLs matched no objects.\n') stubs.subprocess.Popen.returncode_result = 1 self.assertFalse( cloud_storage.Exists('fake bucket', 'fake remote path')) finally: stubs.Restore()
def _assertRunCommandRaisesError(self, communicate_strs, error): stubs = system_stub.Override(cloud_storage, ['open', 'subprocess']) stubs.open.files = {'fake gsutil path':''} stubs.subprocess.Popen.returncode_result = 1 try: for string in communicate_strs: stubs.subprocess.Popen.communicate_result = ('', string) self.assertRaises(error, cloud_storage._RunCommand, []) finally: stubs.Restore()
def setUp(self): story_set = story.StorySet(base_dir=os.path.dirname(__file__)) story_set.AddStory( page_module.Page('http://www.bar.com/', story_set, story_set.base_dir)) story_set.AddStory( page_module.Page('http://www.baz.com/', story_set, story_set.base_dir)) story_set.AddStory( page_module.Page('http://www.foo.com/', story_set, story_set.base_dir)) self.story_set = story_set self._cloud_storage_stub = system_stub.Override(trace, ['cloud_storage'])
def testOpenRestoresCorrectly(self): file_path = os.path.realpath(__file__) stubs = system_stub.Override(system_stub_test_module, ['open']) stubs.open.files = {file_path: 'contents'} f = system_stub_test_module.SystemStubTest.TestOpen(file_path) self.assertEqual(type(f), system_stub.OpenFunctionStub.FileStub) stubs.open.files = {} stubs.Restore() # This will throw an error if the open stub wasn't restored correctly. f = system_stub_test_module.SystemStubTest.TestOpen(file_path) self.assertEqual(type(f), file)
def setUp(self): def check_denylist_arg(denylist): self.assertTrue(denylist is None or isinstance(denylist, device_denylist.Denylist)) return mock.DEFAULT self._healthy_device_patcher = mock.patch( 'devil.android.device_utils.DeviceUtils.HealthyDevices') self._healthy_device_mock = self._healthy_device_patcher.start() self._healthy_device_mock.side_effect = check_denylist_arg self._android_device_stub = system_stub.Override( android_device, ['subprocess'])
def setUp(self): self.log_output = StringIO.StringIO() self.stream_handler = logging.StreamHandler(self.log_output) logging.getLogger().addHandler(self.stream_handler) self._subprocess_patcher = mock.patch('core.trybot_command.subprocess') self._mock_subprocess = self._subprocess_patcher.start() self._urllib2_patcher = mock.patch('core.trybot_command.urllib2') self._urllib2_mock = self._urllib2_patcher.start() self._stubs = system_stub.Override(trybot_command, ['sys', 'open', 'os']) # Always set git command to 'git' to simplify testing across platforms. self._original_git_cmd = trybot_command._GIT_CMD trybot_command._GIT_CMD = 'git'
def setUp(self): self._stubs = system_stub.Override(android_platform_backend, ['perf_control']) self.battery_patcher = mock.patch.object(battery_utils, 'BatteryUtils') self.battery_patcher.start() def get_prop(name, cache=None): del cache # unused return {'ro.product.cpu.abi': 'armeabi-v7a'}.get(name) self.device_patcher = mock.patch.multiple( device_utils.DeviceUtils, FileExists=mock.MagicMock(return_value=False), GetProp=mock.MagicMock(side_effect=get_prop), HasRoot=mock.MagicMock(return_value=True)) self.device_patcher.start()
def setUp(self): self.tmp_dir = tempfile.mkdtemp() # Write the metadata. self.story_set_archive_info_file = os.path.join( self.tmp_dir, 'info.json') with open(self.story_set_archive_info_file, 'w') as f: f.write(archive_info_contents) # Write the existing .wpr files. for i in [1, 2]: with open(os.path.join(self.tmp_dir, ('data_00%d.wpr' % i)), 'w') as f: f.write(archive_info_contents) # Create the PageSetArchiveInfo object to be tested. self.archive_info = archive_info.WprArchiveInfo.FromFile( self.story_set_archive_info_file, cloud_storage.PUBLIC_BUCKET) # Use cloud_storage system stub. self.overrides = system_stub.Override(archive_info, ['cloud_storage'])
def setUp(self): self._stubs = system_stub.Override( android_platform_backend, ['perf_control', 'thermal_throttle']) # Skip _FixPossibleAdbInstability by setting psutil to None. self._actual_ps_util = android_platform_backend.psutil android_platform_backend.psutil = None self.battery_patcher = mock.patch.object(battery_utils, 'BatteryUtils') self.battery_patcher.start() def get_prop(name, cache=None): del cache # unused return {'ro.product.cpu.abi': 'armeabi-v7a'}.get(name) self.device_patcher = mock.patch.multiple( device_utils.DeviceUtils, HasRoot=mock.MagicMock(return_value=True), GetProp=mock.MagicMock(side_effect=get_prop)) self.device_patcher.start()
def CaptureFormattedException(self): exception_formatter.PrintFormattedException = CaptureStderr( exception_formatter.PrintFormattedException, self._formatted_exception_buffer) self._story_runner_logging_stub = system_stub.Override( story_runner, ['logging'])
def testUpdateAndCheckArchives(self): usr_stub = system_stub.Override(story_runner, ['cloud_storage']) wpr_stub = system_stub.Override(archive_info, ['cloud_storage']) archive_data_dir = os.path.join(util.GetTelemetryDir(), 'telemetry', 'internal', 'testing', 'archive_files') try: story_set = story_module.StorySet() story_set.AddStory( page_module.Page('http://www.testurl.com', story_set, story_set.base_dir)) # Page set missing archive_data_file. self.assertRaises(story_runner.ArchiveError, story_runner._UpdateAndCheckArchives, story_set.archive_data_file, story_set.wpr_archive_info, story_set.stories) story_set = story_module.StorySet( archive_data_file='missing_archive_data_file.json') story_set.AddStory( page_module.Page('http://www.testurl.com', story_set, story_set.base_dir)) # Page set missing json file specified in archive_data_file. self.assertRaises(story_runner.ArchiveError, story_runner._UpdateAndCheckArchives, story_set.archive_data_file, story_set.wpr_archive_info, story_set.stories) story_set = story_module.StorySet( archive_data_file=os.path.join(archive_data_dir, 'test.json'), cloud_storage_bucket=cloud_storage.PUBLIC_BUCKET) story_set.AddStory( page_module.Page('http://www.testurl.com', story_set, story_set.base_dir)) # Page set with valid archive_data_file. self.assertTrue( story_runner._UpdateAndCheckArchives( story_set.archive_data_file, story_set.wpr_archive_info, story_set.stories)) story_set.AddStory( page_module.Page('http://www.google.com', story_set, story_set.base_dir)) # Page set with an archive_data_file which exists but is missing a page. self.assertRaises(story_runner.ArchiveError, story_runner._UpdateAndCheckArchives, story_set.archive_data_file, story_set.wpr_archive_info, story_set.stories) story_set = story_module.StorySet( archive_data_file=os.path.join(archive_data_dir, 'test_missing_wpr_file.json'), cloud_storage_bucket=cloud_storage.PUBLIC_BUCKET) story_set.AddStory( page_module.Page('http://www.testurl.com', story_set, story_set.base_dir)) story_set.AddStory( page_module.Page('http://www.google.com', story_set, story_set.base_dir)) # Page set with an archive_data_file which exists and contains all pages # but fails to find a wpr file. self.assertRaises(story_runner.ArchiveError, story_runner._UpdateAndCheckArchives, story_set.archive_data_file, story_set.wpr_archive_info, story_set.stories) finally: usr_stub.Restore() wpr_stub.Restore()
def SuppressExceptionFormatting(self): """Fake out exception formatter to avoid spamming the unittest stdout.""" story_runner.exception_formatter = FakeExceptionFormatterModule self._story_runner_logging_stub = system_stub.Override( story_runner, ['logging'])
def setUp(self): self.tmp_dir = tempfile.mkdtemp() # Set file for the metadata. self.story_set_archive_info_file = os.path.join( self.tmp_dir, 'info.json') self.overrides = system_stub.Override(archive_info2, ['cloud_storage'])
def setUp(self): self._healthy_device_patcher = mock.patch( 'devil.android.device_utils.DeviceUtils.HealthyDevices') self._healthy_device_mock = self._healthy_device_patcher.start() self._android_device_stub = system_stub.Override( android_device, ['subprocess', 'logging'])