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

Unified Diff: appengine/findit/waterfall/test/trigger_swarming_task_pipeline_test.py

Issue 2491473002: [Findit] Implementing swarming task error detection (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: appengine/findit/waterfall/test/trigger_swarming_task_pipeline_test.py
diff --git a/appengine/findit/waterfall/test/trigger_swarming_task_pipeline_test.py b/appengine/findit/waterfall/test/trigger_swarming_task_pipeline_test.py
index 7178d7df84a12856bd3a6888d8bc0bad0f46e422..5d028334ea998e7a72330f8614752e83ef8fe70d 100644
--- a/appengine/findit/waterfall/test/trigger_swarming_task_pipeline_test.py
+++ b/appengine/findit/waterfall/test/trigger_swarming_task_pipeline_test.py
@@ -101,7 +101,7 @@ class TriggerSwarmingTaskPipelineTest(wf_testcase.WaterfallTestCase):
new_request_json = {}
def MockedTriggerSwarmingTask(new_request, *_):
new_request_json.update(new_request.Serialize())
- return 'new_task_id'
+ return 'new_task_id', None
self.mock(swarming_util, 'TriggerSwarmingTask', MockedTriggerSwarmingTask)
def MockedGetSwarmingTaskName(*_):
@@ -159,3 +159,61 @@ class TriggerSwarmingTaskPipelineTest(wf_testcase.WaterfallTestCase):
self.assertEqual(
waterfall_config.GetSwarmingSettings()['iterations_to_rerun'],
swarming_task.parameters['iterations_to_rerun'])
+
+ def testTriggerANewSwarmingTaskError(self):
+ def MockedDownloadSwarmingTaskData(*_):
+ return [{'task_id': '1'}, {'task_id': '2'}]
+ self.mock(swarming_util, 'ListSwarmingTasksDataByTags',
+ MockedDownloadSwarmingTaskData)
+
+ def MockedGetSwarmingTaskRequest(ref_task_id, *_):
+ self.assertEqual('1', ref_task_id)
+ return SwarmingTaskRequest.Deserialize({
+ 'expiration_secs': 3600,
+ 'name': 'ref_task_request',
+ 'parent_task_id': 'pti',
+ 'priority': 25,
+ 'properties': {
+ 'command': 'cmd',
+ 'dimensions': [{'key': 'k', 'value': 'v'}],
+ 'env': [
+ {'key': 'a', 'value': '1'},
+ {'key': 'GTEST_SHARD_INDEX', 'value': '1'},
+ {'key': 'GTEST_TOTAL_SHARDS', 'value': '5'},
+ ],
+ 'execution_timeout_secs': 3600,
+ 'extra_args': ['--flag=value', '--gtest_filter=d.f'],
+ 'grace_period_secs': 30,
+ 'idempotent': True,
+ 'inputs_ref': {'a': 1},
+ 'io_timeout_secs': 1200,
+ },
+ 'tags': ['master:a', 'buildername:b', 'name:a_tests'],
+ 'user': 'user',
+ })
+ self.mock(swarming_util, 'GetSwarmingTaskRequest',
+ MockedGetSwarmingTaskRequest)
+
+ new_request_json = {}
+ def MockedTriggerSwarmingTask(new_request, *_):
+ new_request_json.update(new_request.Serialize())
+ return None, {'code': swarming_util.UNKNOWN, 'message': 'error'}
+ self.mock(swarming_util, 'TriggerSwarmingTask', MockedTriggerSwarmingTask)
+
+ master_name = 'm'
+ builder_name = 'b'
+ build_number = 234
+ step_name = 'a_tests on platform'
+ tests = ['a.b', 'a.c']
+
+ pipeline = TriggerSwarmingTaskPipeline()
+ pipeline.run(master_name, builder_name, build_number, step_name, tests)
+
+ swarming_task = WfSwarmingTask.Get(
+ master_name, builder_name, build_number, step_name)
+ self.assertIsNotNone(swarming_task)
+ self.assertEqual(swarming_task.error,
+ {
+ 'code': swarming_util.UNKNOWN,
+ 'message': 'error'
+ })

Powered by Google App Engine
This is Rietveld 408576698