| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import logging | 5 import logging |
| 6 | 6 |
| 7 from model.flake.flake_swarming_task import FlakeSwarmingTask | 7 from model.flake.flake_swarming_task import FlakeSwarmingTask |
| 8 from model.flake.master_flake_analysis import DataPoint | 8 from model.flake.master_flake_analysis import DataPoint |
| 9 from model.flake.master_flake_analysis import MasterFlakeAnalysis | 9 from model.flake.master_flake_analysis import MasterFlakeAnalysis |
| 10 from waterfall.process_base_swarming_task_result_pipeline import ( | 10 from waterfall.process_base_swarming_task_result_pipeline import ( |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 | 37 |
| 38 Returns: | 38 Returns: |
| 39 tests_statuses (dict): A dict of different statuses for each test. | 39 tests_statuses (dict): A dict of different statuses for each test. |
| 40 | 40 |
| 41 Currently for each test, we are saving number of total runs, | 41 Currently for each test, we are saving number of total runs, |
| 42 number of succeeded runs and number of failed runs. | 42 number of succeeded runs and number of failed runs. |
| 43 """ | 43 """ |
| 44 | 44 |
| 45 tests_statuses = super(ProcessFlakeSwarmingTaskResultPipeline, | 45 tests_statuses = super(ProcessFlakeSwarmingTaskResultPipeline, |
| 46 self)._CheckTestsRunStatuses(output_json) | 46 self)._CheckTestsRunStatuses(output_json) |
| 47 | |
| 48 # Should query by test name, because some test has dependencies which | 47 # Should query by test name, because some test has dependencies which |
| 49 # are also run, like TEST and PRE_TEST in browser_tests. | 48 # are also run, like TEST and PRE_TEST in browser_tests. |
| 49 tests_statuses = super(ProcessFlakeSwarmingTaskResultPipeline, |
| 50 self)._CheckTestsRunStatuses(output_json) |
| 51 |
| 50 tries = tests_statuses.get(test_name, {}).get('total_run', 0) | 52 tries = tests_statuses.get(test_name, {}).get('total_run', 0) |
| 51 successes = tests_statuses.get(test_name, {}).get('SUCCESS', 0) | 53 successes = tests_statuses.get(test_name, {}).get('SUCCESS', 0) |
| 52 | 54 |
| 53 if tries > 0: | 55 if tries > 0: |
| 54 pass_rate = successes * 1.0 / tries | 56 pass_rate = successes * 1.0 / tries |
| 55 else: | 57 else: |
| 56 pass_rate = -1 # Special value to indicate test is not existing. | 58 pass_rate = -1 # Special value to indicate test is not existing. |
| 57 | 59 |
| 58 master_flake_analysis = MasterFlakeAnalysis.GetVersion( | 60 master_flake_analysis = MasterFlakeAnalysis.GetVersion( |
| 59 master_name, builder_name, master_build_number, step_name, test_name, | 61 master_name, builder_name, master_build_number, step_name, test_name, |
| 60 version=version_number) | 62 version=version_number) |
| 61 logging.info( | 63 logging.info( |
| 62 'Updating MasterFlakeAnalysis data %s/%s/%s/%s/%s', | 64 'Updating MasterFlakeAnalysis data %s/%s/%s/%s/%s', |
| 63 master_name, builder_name, master_build_number, step_name, test_name) | 65 master_name, builder_name, master_build_number, step_name, test_name) |
| 66 |
| 64 logging.info('MasterFlakeAnalysis %s version %s', | 67 logging.info('MasterFlakeAnalysis %s version %s', |
| 65 master_flake_analysis, master_flake_analysis.version_number) | 68 master_flake_analysis, master_flake_analysis.version_number) |
| 66 | 69 |
| 67 data_point = DataPoint() | 70 data_point = DataPoint() |
| 68 data_point.build_number = build_number | 71 data_point.build_number = build_number |
| 69 data_point.pass_rate = pass_rate | 72 data_point.pass_rate = pass_rate |
| 70 master_flake_analysis.data_points.append(data_point) | 73 master_flake_analysis.data_points.append(data_point) |
| 71 | 74 |
| 72 flake_swarming_task = FlakeSwarmingTask.Get( | 75 flake_swarming_task = FlakeSwarmingTask.Get( |
| 73 master_name, builder_name, build_number, step_name, test_name) | 76 master_name, builder_name, build_number, step_name, test_name) |
| (...skipping 18 matching lines...) Expand all Loading... |
| 92 return (master_name, builder_name, build_number, step_name, | 95 return (master_name, builder_name, build_number, step_name, |
| 93 master_build_number, test_name, version_number) | 96 master_build_number, test_name, version_number) |
| 94 | 97 |
| 95 # Unused Argument - pylint: disable=W0612,W0613 | 98 # Unused Argument - pylint: disable=W0612,W0613 |
| 96 # Arguments number differs from overridden method - pylint: disable=W0221 | 99 # Arguments number differs from overridden method - pylint: disable=W0221 |
| 97 def _GetSwarmingTask(self, master_name, builder_name, build_number, | 100 def _GetSwarmingTask(self, master_name, builder_name, build_number, |
| 98 step_name, master_build_number, test_name, _): | 101 step_name, master_build_number, test_name, _): |
| 99 # Gets the appropriate kind of swarming task (FlakeSwarmingTask). | 102 # Gets the appropriate kind of swarming task (FlakeSwarmingTask). |
| 100 return FlakeSwarmingTask.Get(master_name, builder_name, build_number, | 103 return FlakeSwarmingTask.Get(master_name, builder_name, build_number, |
| 101 step_name, test_name) | 104 step_name, test_name) |
| OLD | NEW |