def _RunFetchBenchmarkDepsTest(self, benchmark_name, expected_fetched_file_paths=None): """Simulates './fetch_benchmark_deps [benchmark_name]' It checks if the paths returned are expected and have corresponding sha1 checksums. The expected result can be omitted if the dependencies of specified benchmarks are subject to changes. Args: benchmark_name: benchmark name expected_fetched_file_paths: the expected result. """ sys.argv[1] = benchmark_name output = StringIO.StringIO() with mock.patch('telemetry.wpr.archive_info.WprArchiveInfo' '.DownloadArchivesIfNeeded') as mock_download: with mock.patch('catapult_base.cloud_storage' '.GetFilesInDirectoryIfChanged') as mock_get: mock_download.return_value = True mock_get.GetFilesInDirectoryIfChanged.return_value = True fetch_benchmark_deps.main(output) for f in output.getvalue().splitlines(): fullpath = os.path.join(fetch_benchmark_deps.GetChromiumDir(), f) sha1path = fullpath + '.sha1' self.assertTrue(os.path.isfile(sha1path)) if expected_fetched_file_paths: self.assertEquals(expected_fetched_file_paths, NormPaths(output.getvalue()))
def testFetchWPRs(self): test_name = 'system_health.common_desktop' deps_fd, deps_path = tempfile.mkstemp() args = [test_name, '--output-deps=%s' % deps_path] with mock.patch.object(archive_info.WprArchiveInfo, 'DownloadArchivesIfNeeded', autospec=True) as mock_download: with mock.patch('py_utils.cloud_storage' '.GetFilesInDirectoryIfChanged') as mock_get: mock_download.return_value = True mock_get.GetFilesInDirectoryIfChanged.return_value = True fetch_benchmark_deps.main(args) self.assertEqual( # pylint: disable=protected-access os.path.normpath(mock_download.call_args[0][0]._file_path), os.path.join(path_util.GetPerfStorySetsDir(), 'data', 'system_health_desktop.json')) # This benchmark doesn't use any static local files. self.assertFalse(mock_get.called) # Gets json content and remove the temp json file. with open(deps_path) as deps_file: deps = json.loads(deps_file.read()) os.close(deps_fd) os.remove(deps_path) # Checks fetch_benchmark_deps.py output. output_count = 0 for dep in deps[test_name]: fullpath = os.path.join(path_util.GetChromiumSrcDir(), dep) sha1path = fullpath + '.sha1' self.assertTrue(os.path.isfile(sha1path)) output_count += 1 self.assertTrue(output_count > 0)
def testFetchServingDirs(self): args = ['media.desktop'] with mock.patch.object(archive_info.WprArchiveInfo, 'DownloadArchivesIfNeeded', autospec=True) as mock_download: with mock.patch('py_utils.cloud_storage' '.GetFilesInDirectoryIfChanged') as mock_get: mock_download.return_value = True mock_get.GetFilesInDirectoryIfChanged.return_value = True fetch_benchmark_deps.main(args) # This benchmark doesn't use any archive files. self.assertFalse(mock_download.called) mock_get.assert_called_once_with( os.path.join(path_util.GetPerfStorySetsDir(), 'media_cases'), cloud_storage.PARTNER_BUCKET)
def testFetchWPRs(self): args = ['smoothness.top_25_smooth'] with mock.patch.object(archive_info.WprArchiveInfo, 'DownloadArchivesIfNeeded', autospec=True) as mock_download: with mock.patch('py_utils.cloud_storage' '.GetFilesInDirectoryIfChanged') as mock_get: mock_download.return_value = True mock_get.GetFilesInDirectoryIfChanged.return_value = True fetch_benchmark_deps.main(args) self.assertEqual( # pylint: disable=protected-access os.path.normpath(mock_download.call_args[0][0]._file_path), os.path.join(path_util.GetPerfStorySetsDir(), 'data', 'top_25_smooth.json')) # This benchmark doesn't use any static local files. self.assertFalse(mock_get.called)