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

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

Issue 2597373002: [Findit] Flake checker: Get full build info for each flake build analyzed (Closed)
Patch Set: Removing incorrect line Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « appengine/findit/waterfall/test/process_base_swarming_task_result_pipeline_test.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/waterfall/test/process_flake_swarming_task_result_pipeline_test.py
diff --git a/appengine/findit/waterfall/test/process_flake_swarming_task_result_pipeline_test.py b/appengine/findit/waterfall/test/process_flake_swarming_task_result_pipeline_test.py
index b0b9579c480b61a314488ccd68cd16d5d0fc2981..b2faa43bc7ca5eb64d824a9c55875658aad4a4ff 100644
--- a/appengine/findit/waterfall/test/process_flake_swarming_task_result_pipeline_test.py
+++ b/appengine/findit/waterfall/test/process_flake_swarming_task_result_pipeline_test.py
@@ -3,17 +3,14 @@
# found in the LICENSE file.
import datetime
-import json
import mock
from model import analysis_status
from model.flake.flake_swarming_task import FlakeSwarmingTask
from model.flake.master_flake_analysis import MasterFlakeAnalysis
-from model.wf_build import WfBuild
from waterfall import build_util
from waterfall import swarming_util
-from waterfall import (
- process_flake_swarming_task_result_pipeline as flake_result_pipeline)
+from waterfall.build_info import BuildInfo
from waterfall.process_flake_swarming_task_result_pipeline import (
ProcessFlakeSwarmingTaskResultPipeline)
from waterfall.test import (
@@ -38,10 +35,13 @@ class ProcessFlakeSwarmingTaskResultPipelineTest(wf_testcase.WaterfallTestCase):
self.mock(swarming_util, 'GetSwarmingTaskResultById',
self._MockedGetSwarmingTaskResultById)
- @mock.patch.object(flake_result_pipeline,
- '_GetCommitPositionAndGitHash',
- return_value=(12345, 'git_hash'))
- def testCheckTestsRunStatuses(self, _):
+ @mock.patch.object(build_util, 'GetBuildInfo')
+ def testCheckTestsRunStatuses(self, mocked_fn):
+ build_info = BuildInfo(
+ self.master_name, self.build_number, self.build_number)
+ build_info.commit_position = 12345
+ build_info.chromium_revision = 'a1b2c3d4'
+ mocked_fn.return_value = build_info
analysis = MasterFlakeAnalysis.Create(
self.master_name, self.builder_name,
self.build_number, self.step_name, self.test_name)
@@ -63,10 +63,34 @@ class ProcessFlakeSwarmingTaskResultPipelineTest(wf_testcase.WaterfallTestCase):
base_test._SAMPLE_FAILURE_LOG, *call_params))
self.assertEqual(base_test._EXPECTED_TESTS_STATUS, tests_statuses)
- @mock.patch.object(flake_result_pipeline,
- '_GetCommitPositionAndGitHash',
- return_value=(12345, 'git_hash'))
- def testCheckTestsRunStatusesWhenTestDoesNotExist(self, _):
+ @mock.patch.object(build_util, 'GetBuildInfo')
+ def testCheckTestsRunStatusesZeroBuildNumber(self, mocked_fn):
+ build_info = BuildInfo(self.master_name, self.build_number, 0)
+ build_info.commit_position = 12345
+ build_info.chromium_revision = 'a1b2c3d4'
+ mocked_fn.return_value = build_info
+
+ analysis = MasterFlakeAnalysis.Create(
+ self.master_name, self.builder_name, 0, self.step_name, self.test_name)
+ analysis.Save()
+
+ task = FlakeSwarmingTask.Create(
+ self.master_name, self.builder_name, 0, self.step_name, self.test_name)
+ task.put()
+
+ ProcessFlakeSwarmingTaskResultPipeline()._CheckTestsRunStatuses(
+ {}, self.master_name, self.builder_name, 0, self.step_name, 0,
+ self.test_name, 1)
+ self.assertIsNone(analysis.data_points[0].previous_build_commit_position)
+
+ @mock.patch.object(build_util, 'GetBuildInfo')
+ def testCheckTestsRunStatusesWhenTestDoesNotExist(self, mocked_fn):
+ build_info = BuildInfo(
+ self.master_name, self.builder_name, self.build_number)
+ build_info.commit_position = 12345
+ build_info.chromium_revision = 'a1b2c3d4'
+ mocked_fn.return_value = build_info
+
test_name = 'TestSuite1.new_test'
analysis = MasterFlakeAnalysis.Create(
self.master_name, self.builder_name,
@@ -99,9 +123,8 @@ class ProcessFlakeSwarmingTaskResultPipelineTest(wf_testcase.WaterfallTestCase):
@mock.patch.object(swarming_util, 'GetSwarmingTaskFailureLog',
return_value=(base_test._SAMPLE_FAILURE_LOG, None))
- @mock.patch.object(flake_result_pipeline,
- '_GetCommitPositionAndGitHash',
- return_value=(12345, 'git_hash'))
+ @mock.patch.object(build_util, 'GetBuildInfo',
+ return_value=BuildInfo('m', 'b', 123))
def testProcessFlakeSwarmingTaskResultPipeline(self, *_):
# End to end test.
task = FlakeSwarmingTask.Create(
@@ -137,52 +160,3 @@ class ProcessFlakeSwarmingTaskResultPipelineTest(wf_testcase.WaterfallTestCase):
task.started_time)
self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9),
task.completed_time)
-
- @mock.patch.object(build_util, '_BuildDataNeedUpdating', return_value=False)
- def testGetCommitPositionAndGitHash(self, _):
- build = WfBuild.Create('m', 'b', 123)
- build.data = json.dumps({
- 'properties': [
- ['got_revision', 'a_git_hash'],
- ['got_revision_cp', 'refs/heads/master@{#12345}']
- ],
- })
- build.put()
- self.assertEqual(
- (12345, 'a_git_hash'),
- flake_result_pipeline._GetCommitPositionAndGitHash('m', 'b', 123))
- self.assertEqual(
- (None, None),
- flake_result_pipeline._GetCommitPositionAndGitHash('m', 'b', -1))
-
- @mock.patch.object(build_util, '_BuildDataNeedUpdating', return_value=False)
- def testGetCommitPositionAndGitHashNoBuildDataAvailable(self, _):
- build = WfBuild.Create('m', 'b', 123)
- build.data = {}
- build.put()
-
- self.assertEqual(
- (None, None),
- flake_result_pipeline._GetCommitPositionAndGitHash('m', 'b', 123))
-
- @mock.patch.object(flake_result_pipeline,
- '_GetCommitPositionAndGitHash',
- return_value=(12345, 'git_hash'))
- def testNoGitHashForPreviousBuildNumberIfZero(self, _):
- analysis = MasterFlakeAnalysis.Create(
- self.master_name, self.builder_name, 0, self.step_name, self.test_name)
- analysis.Save()
-
- task = FlakeSwarmingTask.Create(
- self.master_name, self.builder_name, 0, self.step_name, self.test_name)
- task.put()
-
- call_params = ProcessFlakeSwarmingTaskResultPipeline._GetArgs(
- self.pipeline, self.master_name, self.builder_name, 0, self.step_name,
- 0, self.test_name, self.version_number)
-
- ProcessFlakeSwarmingTaskResultPipeline._CheckTestsRunStatuses(
- self.pipeline, base_test._SAMPLE_FAILURE_LOG, *call_params)
-
- self.assertIsNone(analysis.data_points[0].previous_build_commit_position)
- self.assertIsNone(analysis.data_points[0].previous_build_git_hash)
« no previous file with comments | « appengine/findit/waterfall/test/process_base_swarming_task_result_pipeline_test.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698