Exemple #1
0
 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'])
Exemple #2
0
 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()
Exemple #4
0
    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
Exemple #6
0
    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()
Exemple #7
0
  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()
Exemple #8
0
    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'])
Exemple #11
0
 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()
Exemple #13
0
  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'])
Exemple #14
0
 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)
Exemple #15
0
    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'])
Exemple #16
0
 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'])
Exemple #19
0
    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()
Exemple #20
0
 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'])
Exemple #21
0
    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()
Exemple #22
0
 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'])