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

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

Issue 2026283002: [Findit] Adding logic to force try jobs regardless of bailout or previous results (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Created 4 years, 6 months 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 from testing_utils import testing 5 from testing_utils import testing
6 6
7 from common.pipeline_wrapper import pipeline_handlers 7 from common.pipeline_wrapper import pipeline_handlers
8 from common.waterfall import failure_type
9 from model.wf_analysis import WfAnalysis 8 from model.wf_analysis import WfAnalysis
10 from waterfall import try_job_util 9 from waterfall import try_job_util
11 from waterfall.start_try_job_on_demand_pipeline import ( 10 from waterfall.start_try_job_on_demand_pipeline import (
12 StartTryJobOnDemandPipeline) 11 StartTryJobOnDemandPipeline)
13 12
14 13
15 class StartTryJobOnDemandPipelineTest(testing.AppengineTestCase): 14 class StartTryJobOnDemandPipelineTest(testing.AppengineTestCase):
16 app_module = pipeline_handlers._APP 15 app_module = pipeline_handlers._APP
17 16
18 def _MockTryJobScheduling(self, requests): 17 def _MockTryJobScheduling(self, requests):
19 def Mocked_ScheduleTryJobIfNeeded(*args, **kwargs): 18 def Mocked_ScheduleTryJobIfNeeded(*args, **kwargs):
20 requests.append((args, kwargs)) 19 requests.append((args, kwargs))
21 return {'compile': 'try-job-key'} 20 return {'compile': 'try-job-key'}
22 self.mock( 21 self.mock(
23 try_job_util, 'ScheduleTryJobIfNeeded', Mocked_ScheduleTryJobIfNeeded) 22 try_job_util, 'ScheduleTryJobIfNeeded', Mocked_ScheduleTryJobIfNeeded)
24 23
25 def testNotScheduleTryJobIfBuildNotCompleted(self): 24 def testNotScheduleTryJobIfBuildNotCompleted(self):
26 requests = [] 25 requests = []
27 self._MockTryJobScheduling(requests) 26 self._MockTryJobScheduling(requests)
28 pipeline = StartTryJobOnDemandPipeline() 27 pipeline = StartTryJobOnDemandPipeline()
29 self.assertFalse(pipeline.run(None, None, False, None)) 28 self.assertFalse(pipeline.run(None, None, False, False, None))
30 self.assertEqual(0, len(requests)) 29 self.assertEqual(0, len(requests))
31 30
32 def testTryJobScheduled(self): 31 def testTryJobScheduled(self):
33 master_name, builder_name, build_number = 'm', 'b', 123 32 master_name, builder_name, build_number = 'm', 'b', 123
34 WfAnalysis.Create(master_name, builder_name, build_number).put() 33 WfAnalysis.Create(master_name, builder_name, build_number).put()
35 failure_info = { 34 failure_info = {
36 'master_name': master_name, 35 'master_name': master_name,
37 'builder_name': builder_name, 36 'builder_name': builder_name,
38 'build_number': build_number, 37 'build_number': build_number,
39 } 38 }
40 39
41 requests = [] 40 requests = []
42 self._MockTryJobScheduling(requests) 41 self._MockTryJobScheduling(requests)
43 42
44 pipeline = StartTryJobOnDemandPipeline() 43 pipeline = StartTryJobOnDemandPipeline()
45 self.assertTrue(pipeline.run(failure_info, None, True, None)) 44 self.assertTrue(pipeline.run(failure_info, None, True, False, None))
46 self.assertEqual(1, len(requests)) 45 self.assertEqual(1, len(requests))
47 self.assertEqual( 46 self.assertEqual(
48 {'compile': 'try-job-key'}, 47 {'compile': 'try-job-key'},
49 WfAnalysis.Get( 48 WfAnalysis.Get(
50 master_name, builder_name, build_number).failure_result_map) 49 master_name, builder_name, build_number).failure_result_map)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698