Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(892)

Side by Side Diff: appengine/findit/waterfall/test/process_swarming_task_result_pipeline_test.py

Issue 2491473002: [Findit] Implementing swarming task error detection (Closed)
Patch Set: Rebase Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 datetime 5 import datetime
6 6
7 from model import analysis_status 7 from model import analysis_status
8 from model.wf_swarming_task import WfSwarmingTask 8 from model.wf_swarming_task import WfSwarmingTask
9 from waterfall import swarming_util 9 from waterfall import swarming_util
10 from waterfall.process_swarming_task_result_pipeline import ( 10 from waterfall.process_swarming_task_result_pipeline import (
11 ProcessSwarmingTaskResultPipeline) 11 ProcessSwarmingTaskResultPipeline)
12 from waterfall.test import ( 12 from waterfall.test import (
13 process_base_swarming_task_result_pipeline_test as base_test) 13 process_base_swarming_task_result_pipeline_test as base_test)
14 from waterfall.test import wf_testcase 14 from waterfall.test import wf_testcase
15 15
16 16
17 class ProcessSwarmingTaskResultPipelineTest(wf_testcase.WaterfallTestCase): 17 class ProcessSwarmingTaskResultPipelineTest(wf_testcase.WaterfallTestCase):
18 18
19 def _MockedGetSwarmingTaskResultById(self, task_id, _): 19 def _MockedGetSwarmingTaskResultById(self, task_id, _):
20 return base_test._SWARMING_TASK_RESULTS[task_id] 20 return base_test._SWARMING_TASK_RESULTS[task_id], None
21 21
22 def setUp(self): 22 def setUp(self):
23 super(ProcessSwarmingTaskResultPipelineTest, self).setUp() 23 super(ProcessSwarmingTaskResultPipelineTest, self).setUp()
24 self.master_name = 'm' 24 self.master_name = 'm'
25 self.builder_name = 'b' 25 self.builder_name = 'b'
26 self.build_number = 121 26 self.build_number = 121
27 self.step_name = 'abc_tests on platform' 27 self.step_name = 'abc_tests on platform'
28 self.mock(swarming_util, 'GetSwarmingTaskResultById', 28 self.mock(swarming_util, 'GetSwarmingTaskResultById',
29 self._MockedGetSwarmingTaskResultById) 29 self._MockedGetSwarmingTaskResultById)
30 30
31 def _MockedGetSwarmingTaskFailureLog(self, *_): 31 def _MockedGetSwarmingTaskFailureLog(self, *_):
32 return base_test._SAMPLE_FAILURE_LOG 32 return base_test._SAMPLE_FAILURE_LOG, None
33 33
34 def testProcessSwarmingTaskResultPipeline(self): 34 def testProcessSwarmingTaskResultPipeline(self):
35 # End to end test. 35 # End to end test.
36 self.mock(swarming_util, 'GetSwarmingTaskFailureLog', 36 self.mock(swarming_util, 'GetSwarmingTaskFailureLog',
37 self._MockedGetSwarmingTaskFailureLog) 37 self._MockedGetSwarmingTaskFailureLog)
38 38
39 task = WfSwarmingTask.Create( 39 task = WfSwarmingTask.Create(
40 self.master_name, self.builder_name, 40 self.master_name, self.builder_name,
41 self.build_number, self.step_name) 41 self.build_number, self.step_name)
42 task.task_id = 'task_id1' 42 task.task_id = 'task_id1'
(...skipping 15 matching lines...) Expand all
58 self.assertEqual(analysis_status.COMPLETED, task.status) 58 self.assertEqual(analysis_status.COMPLETED, task.status)
59 self.assertEqual(base_test._EXPECTED_TESTS_STATUS, task.tests_statuses) 59 self.assertEqual(base_test._EXPECTED_TESTS_STATUS, task.tests_statuses)
60 self.assertEqual( 60 self.assertEqual(
61 base_test._EXPECTED_CLASSIFIED_TESTS, task.classified_tests) 61 base_test._EXPECTED_CLASSIFIED_TESTS, task.classified_tests)
62 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220), 62 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220),
63 task.created_time) 63 task.created_time)
64 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550), 64 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550),
65 task.started_time) 65 task.started_time)
66 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9), 66 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9),
67 task.completed_time) 67 task.completed_time)
68
69 def testProcessSwarmingTaskResultPipelineTaskNotRunning(self):
70
71 task = WfSwarmingTask.Create(
72 self.master_name, self.builder_name,
73 self.build_number, self.step_name)
74 task.task_id = 'task_id2'
75 task.put()
76
77 pipeline = ProcessSwarmingTaskResultPipeline()
78 step_name, task_info = pipeline.run(
79 self.master_name, self.builder_name,
80 self.build_number, self.step_name)
81
82 self.assertEqual(self.step_name, step_name)
83 self.assertIsNone(task_info[0])
84 self.assertEqual([], task_info[1])
85
86 task = WfSwarmingTask.Get(
87 self.master_name, self.builder_name, self.build_number, self.step_name)
88
89 self.assertEqual(analysis_status.ERROR, task.status)
90 self.assertEqual({}, task.tests_statuses)
91 self.assertEqual({}, task.classified_tests)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698