|  | #!/usr/bin/env vpython3 | 
|  |  | 
|  | # Copyright (c) 2022 The WebRTC project authors. All Rights Reserved. | 
|  | # | 
|  | # Use of this source code is governed by a BSD-style license | 
|  | # that can be found in the LICENSE file in the root of the source | 
|  | # tree. An additional intellectual property rights grant can be found | 
|  | # in the file PATENTS.  All contributing project authors may | 
|  | # be found in the AUTHORS file in the root of the source tree. | 
|  |  | 
|  | import os | 
|  | import sys | 
|  |  | 
|  | import unittest | 
|  | from unittest import mock | 
|  |  | 
|  | _SCRIPT_DIR = os.path.dirname(__file__) | 
|  | _SRC_DIR = os.path.normpath(os.path.join(_SCRIPT_DIR, '..', '..')) | 
|  |  | 
|  | sys.path.insert(0, os.path.join(_SRC_DIR, 'third_party', 'protobuf', 'python')) | 
|  | import process_perf_results | 
|  |  | 
|  |  | 
|  | class ProcessPerfResultsTest(unittest.TestCase): | 
|  | def testConfigurePythonPath(self): | 
|  | # pylint: disable=protected-access | 
|  | self.assertEqual( | 
|  | 0, | 
|  | process_perf_results._ConfigurePythonPath( | 
|  | os.path.join(_SRC_DIR, 'out/Default'))) | 
|  |  | 
|  | def testUploadToDasboard(self): | 
|  | outdir = os.path.join(_SRC_DIR, 'out/Default') | 
|  | args = mock.Mock( | 
|  | build_properties='{' + '"outdir":"' + outdir + '", ' + | 
|  | '"perf_dashboard_machine_group":"mock_machine_group", ' + | 
|  | '"bot":"mock_bot", ' + '"webrtc_git_hash":"mock_webrtc_git_hash", ' + | 
|  | '"commit_position":"123456", ' + | 
|  | '"build_page_url":"mock_build_page_url", ' + | 
|  | '"dashboard_url":"mock_dashboard_url"' + '}', | 
|  | summary_json='mock_sumary_json', | 
|  | task_output_dir='mock_task_output_dir', | 
|  | test_suite='mock_test_suite', | 
|  | ) | 
|  | perftest_output = mock.Mock( | 
|  | absolute=lambda: 'dummy_path/perftest-output.pb', | 
|  | is_file=lambda: True, | 
|  | ) | 
|  | with mock.patch('pathlib.Path.rglob') as mocked_rglob: | 
|  | with mock.patch('catapult_uploader.UploadToDashboard') as mocked_upload: | 
|  | mocked_rglob.return_value = [perftest_output] | 
|  | mocked_upload.return_value = 0 | 
|  | # pylint: disable=protected-access | 
|  | self.assertEqual(0, process_perf_results._UploadToDasboard(args)) | 
|  |  | 
|  | import catapult_uploader | 
|  | mocked_upload.assert_called_once_with( | 
|  | catapult_uploader.UploaderOptions( | 
|  | perf_dashboard_machine_group='mock_machine_group', | 
|  | bot='mock_bot', | 
|  | test_suite='mock_test_suite', | 
|  | webrtc_git_hash='mock_webrtc_git_hash', | 
|  | commit_position='123456', | 
|  | build_page_url='mock_build_page_url', | 
|  | dashboard_url='mock_dashboard_url', | 
|  | input_results_file=perftest_output.absolute())) | 
|  |  | 
|  |  | 
|  | if (__name__) == '__main__': | 
|  | unittest.main() |