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 |