Chromium Code Reviews| Index: dashboard/dashboard/pinpoint/models/job.py |
| diff --git a/dashboard/dashboard/pinpoint/models/job.py b/dashboard/dashboard/pinpoint/models/job.py |
| index 89aae0d5f4c1b1be12f44cc6e445832770a860fa..eae2b6dd336feacbc5b6dfc8fa31944937c4515f 100644 |
| --- a/dashboard/dashboard/pinpoint/models/job.py |
| +++ b/dashboard/dashboard/pinpoint/models/job.py |
| @@ -270,11 +270,23 @@ class _JobState(object): |
| result_values.append(change_result_values) |
| + execution_details = [] |
|
dtu
2017/08/21 23:52:52
I don't see a clear advantage of this format over
shatch
2017/08/22 01:23:55
Done.
|
| + for change in self._changes: |
| + change_results_per_quest = _CombineExecutionDetailsPerQuest( |
| + self._attempts[change]) |
| + |
| + change_result_values = [] |
| + for quest in self._quests: |
| + change_result_values.append(change_results_per_quest[quest]) |
| + |
| + execution_details.append(change_result_values) |
| + |
| return { |
| 'quests': map(str, self._quests), |
| 'changes': map(str, self._changes), |
| 'comparisons': comparisons, |
| 'result_values': result_values, |
| + 'execution_details': execution_details, |
|
dtu
2017/08/21 23:52:52
nit: executions
|
| } |
| def _Compare(self, change_a, change_b): |
| @@ -313,6 +325,15 @@ def _CombineResultsPerQuest(attempts): |
| return aggregate_results |
| +def _CombineExecutionDetailsPerQuest(attempts): |
| + aggregate_results = collections.defaultdict(list) |
| + for attempt in attempts: |
| + for quest, results in attempt.AsDictPerQuest().iteritems(): |
| + aggregate_results[quest].append(results) |
| + |
| + return aggregate_results |
| + |
| + |
| def _CompareResults(results_a, results_b): |
| if len(results_a) == 0 or len(results_b) == 0: |
| return _UNKNOWN |