def testCheckFirstKnownFailureForSwarmingTestsFoundFlaky(self):
    master_name = 'm'
    builder_name = 'b'
    build_number = 221
    step_name = 'abc_test'
    failed_steps = {
        'abc_test': {
            'current_failure': 221,
            'first_failure': 221,
            'list_isolated_data': [
                {
                    'isolatedserver': 'https://isolateserver.appspot.com',
                    'namespace': 'default-gzip',
                    'digest': 'isolatedhashabctest-223'
                }
            ]
        }
    }
    builds = {
        '221': {
            'blame_list': ['commit1'],
            'chromium_revision': 'commit1'
        },
        '222': {
            'blame_list': ['commit2'],
            'chromium_revision': 'commit2'
        },
        '223': {
            'blame_list': ['commit3', 'commit4'],
            'chromium_revision': 'commit4'
        }
    }
    expected_failed_steps = failed_steps
    step = WfStep.Create(master_name, builder_name, build_number, step_name)
    step.isolated = True
    step.put()

    def MockGetIsolatedDataForFailedBuild(*_):
      return True
    self.mock(
        swarming_util, 'GetIsolatedDataForFailedBuild',
        MockGetIsolatedDataForFailedBuild)

    def MockRetrieveShardedTestResultsFromIsolatedServer(*_):
      return json.loads(
          self._GetSwarmingData(
              'isolated-plain', 'm_b_223_abc_test_flaky.json'))
    self.mock(
        swarming_util, 'RetrieveShardedTestResultsFromIsolatedServer',
        MockRetrieveShardedTestResultsFromIsolatedServer)

    pipeline = DetectFirstFailurePipeline()
    pipeline._CheckFirstKnownFailureForSwarmingTests(
        master_name, builder_name, build_number, failed_steps, builds)

    self.assertEqual(expected_failed_steps, failed_steps)
Ejemplo n.º 2
0
    def testCheckFirstKnownFailureForSwarmingTestsFoundFlaky(
            self, mock_module):
        master_name = 'm'
        builder_name = 'b'
        build_number = 221
        step_name = 'abc_test'
        failed_steps = {
            'abc_test': {
                'current_failure':
                221,
                'first_failure':
                221,
                'list_isolated_data': [{
                    'isolatedserver': 'https://isolateserver.appspot.com',
                    'namespace': 'default-gzip',
                    'digest': 'isolatedhashabctest-223'
                }]
            }
        }
        builds = {
            '221': {
                'blame_list': ['commit1'],
                'chromium_revision': 'commit1'
            },
            '222': {
                'blame_list': ['commit2'],
                'chromium_revision': 'commit2'
            },
            '223': {
                'blame_list': ['commit3', 'commit4'],
                'chromium_revision': 'commit4'
            }
        }
        expected_failed_steps = failed_steps
        step = WfStep.Create(master_name, builder_name, build_number,
                             step_name)
        step.isolated = True
        step.put()

        mock_module.GetIsolatedDataForFailedBuild.return_value = True
        mock_module.RetrieveShardedTestResultsFromIsolatedServer.return_value = (
            json.loads(
                self._GetSwarmingData('isolated-plain',
                                      'm_b_223_abc_test_flaky.json')))

        pipeline = DetectFirstFailurePipeline()
        pipeline._CheckFirstKnownFailureForSwarmingTests(
            master_name, builder_name, build_number, failed_steps, builds)

        self.assertEqual(expected_failed_steps, failed_steps)