def testOutputResultsSmoketest(self):
        """Test that nothing blows up when outputting."""
        expectation_map = {
            'foo': {
                data_types.Expectation('foo', ['win', 'intel'], 'RetryOnFailure'):
                {
                    'stale': {
                        'all_pass': uu.CreateStatsWithPassFails(2, 0),
                    },
                },
                data_types.Expectation('foo', ['linux'], 'Failure'): {
                    'semi_stale': {
                        'all_pass': uu.CreateStatsWithPassFails(2, 0),
                        'some_pass': uu.CreateStatsWithPassFails(1, 1),
                        'none_pass': uu.CreateStatsWithPassFails(0, 2),
                    },
                },
                data_types.Expectation('foo', ['mac'], 'Failure'): {
                    'active': {
                        'none_pass': uu.CreateStatsWithPassFails(0, 2),
                    },
                },
            },
        }
        unmatched_results = {
            'builder': [
                data_types.Result('foo', ['win', 'intel'], 'Failure',
                                  'step_name', 'build_id'),
            ],
        }
        unmatched_expectations = [
            data_types.Expectation('foo', ['linux'], 'RetryOnFailure')
        ]

        stale, semi_stale, active = expectations.SplitExpectationsByStaleness(
            expectation_map)

        result_output.OutputResults(stale, semi_stale, active, {}, [], 'print',
                                    self._file_handle)
        result_output.OutputResults(stale, semi_stale, active,
                                    unmatched_results, [], 'print',
                                    self._file_handle)
        result_output.OutputResults(stale, semi_stale, active, {},
                                    unmatched_expectations, 'print',
                                    self._file_handle)
        result_output.OutputResults(stale, semi_stale, active,
                                    unmatched_results, unmatched_expectations,
                                    'print', self._file_handle)

        result_output.OutputResults(stale, semi_stale, active, {}, [], 'html',
                                    self._file_handle)
        result_output.OutputResults(stale, semi_stale, active,
                                    unmatched_results, [], 'html',
                                    self._file_handle)
        result_output.OutputResults(stale, semi_stale, active, {},
                                    unmatched_expectations, 'html',
                                    self._file_handle)
        result_output.OutputResults(stale, semi_stale, active,
                                    unmatched_results, unmatched_expectations,
                                    'html', self._file_handle)
Пример #2
0
 def testSemiStaleExpectations(self):
     """Tests output when only semi-stale expectations are provided."""
     expectation_map = data_types.TestExpectationMap({
         'foo':
         data_types.ExpectationBuilderMap({
             data_types.Expectation('foo', ['win'], ['Failure']):
             data_types.BuilderStepMap({
                 'foo_builder':
                 data_types.StepBuildStatsMap({
                     'step1':
                     uu.CreateStatsWithPassFails(1, 0),
                     'step2':
                     uu.CreateStatsWithPassFails(2, 2),
                 }),
                 'bar_builder':
                 data_types.StepBuildStatsMap({
                     'step1':
                     uu.CreateStatsWithPassFails(3, 0),
                     'step2':
                     uu.CreateStatsWithPassFails(0, 4)
                 }),
             }),
             data_types.Expectation('foo', ['linux'], ['RetryOnFailure']):
             data_types.BuilderStepMap({
                 'foo_builder':
                 data_types.StepBuildStatsMap({
                     'step1':
                     uu.CreateStatsWithPassFails(5, 0),
                     'step2':
                     uu.CreateStatsWithPassFails(6, 6),
                 }),
             }),
         }),
         'bar':
         data_types.ExpectationBuilderMap({
             data_types.Expectation('bar', ['win'], ['Failure']):
             data_types.BuilderStepMap({
                 'foo_builder':
                 data_types.StepBuildStatsMap({
                     'step1':
                     uu.CreateStatsWithPassFails(7, 0),
                 }),
                 'bar_builder':
                 data_types.StepBuildStatsMap({
                     'step1':
                     uu.CreateStatsWithPassFails(0, 8),
                 }),
             }),
         }),
     })
     expected_semi_stale_dict = copy.deepcopy(expectation_map)
     stale_dict, semi_stale_dict, active_dict =\
         expectations.SplitExpectationsByStaleness(expectation_map)
     self.assertEqual(stale_dict, {})
     self.assertEqual(semi_stale_dict, expected_semi_stale_dict)
     self.assertEqual(active_dict, {})
 def testActiveExpectations(self):
     """Tests output when only active expectations are provided."""
     expectation_map = {
         'foo': {
             data_types.Expectation('foo', ['win'], ['Failure']): {
                 'foo_builder': {
                     'step1': uu.CreateStatsWithPassFails(0, 1),
                     'step2': uu.CreateStatsWithPassFails(0, 2),
                 },
                 'bar_builder': {
                     'step1': uu.CreateStatsWithPassFails(0, 3),
                     'step2': uu.CreateStatsWithPassFails(0, 4)
                 },
             },
             data_types.Expectation('foo', ['linux'], ['RetryOnFailure']): {
                 'foo_builder': {
                     'step1': uu.CreateStatsWithPassFails(0, 5),
                     'step2': uu.CreateStatsWithPassFails(0, 6),
                 },
             },
         },
         'bar': {
             data_types.Expectation('bar', ['win'], ['Failure']): {
                 'foo_builder': {
                     'step1': uu.CreateStatsWithPassFails(0, 7),
                 },
             },
         },
     }
     expected_active_dict = copy.deepcopy(expectation_map)
     stale_dict, semi_stale_dict, active_dict =\
         expectations.SplitExpectationsByStaleness(expectation_map)
     self.assertEqual(stale_dict, {})
     self.assertEqual(semi_stale_dict, {})
     self.assertEqual(active_dict, expected_active_dict)
    def testAllExpectations(self):
        """Tests output when all three types of expectations are provided."""
        expectation_map = {
            'foo': {
                data_types.Expectation('foo', ['stale'], 'Failure'): {
                    'foo_builder': {
                        'step1': uu.CreateStatsWithPassFails(1, 0),
                        'step2': uu.CreateStatsWithPassFails(2, 0),
                    },
                    'bar_builder': {
                        'step1': uu.CreateStatsWithPassFails(3, 0),
                        'step2': uu.CreateStatsWithPassFails(4, 0)
                    },
                },
                data_types.Expectation('foo', ['semistale'], 'Failure'): {
                    'foo_builder': {
                        'step1': uu.CreateStatsWithPassFails(1, 0),
                        'step2': uu.CreateStatsWithPassFails(2, 2),
                    },
                    'bar_builder': {
                        'step1': uu.CreateStatsWithPassFails(3, 0),
                        'step2': uu.CreateStatsWithPassFails(0, 4)
                    },
                },
                data_types.Expectation('foo', ['active'], 'Failure'): {
                    'foo_builder': {
                        'step1': uu.CreateStatsWithPassFails(1, 1),
                        'step2': uu.CreateStatsWithPassFails(2, 2),
                    },
                    'bar_builder': {
                        'step1': uu.CreateStatsWithPassFails(3, 3),
                        'step2': uu.CreateStatsWithPassFails(0, 4)
                    },
                },
            },
        }
        expected_stale = {
            'foo': {
                data_types.Expectation('foo', ['stale'], 'Failure'): {
                    'foo_builder': {
                        'step1': uu.CreateStatsWithPassFails(1, 0),
                        'step2': uu.CreateStatsWithPassFails(2, 0),
                    },
                    'bar_builder': {
                        'step1': uu.CreateStatsWithPassFails(3, 0),
                        'step2': uu.CreateStatsWithPassFails(4, 0)
                    },
                },
            },
        }
        expected_semi_stale = {
            'foo': {
                data_types.Expectation('foo', ['semistale'], 'Failure'): {
                    'foo_builder': {
                        'step1': uu.CreateStatsWithPassFails(1, 0),
                        'step2': uu.CreateStatsWithPassFails(2, 2),
                    },
                    'bar_builder': {
                        'step1': uu.CreateStatsWithPassFails(3, 0),
                        'step2': uu.CreateStatsWithPassFails(0, 4)
                    },
                },
            },
        }
        expected_active = {
            'foo': {
                data_types.Expectation('foo', ['active'], 'Failure'): {
                    'foo_builder': {
                        'step1': uu.CreateStatsWithPassFails(1, 1),
                        'step2': uu.CreateStatsWithPassFails(2, 2),
                    },
                    'bar_builder': {
                        'step1': uu.CreateStatsWithPassFails(3, 3),
                        'step2': uu.CreateStatsWithPassFails(0, 4)
                    },
                },
            },
        }

        stale_dict, semi_stale_dict, active_dict =\
            expectations.SplitExpectationsByStaleness(expectation_map)
        self.assertEqual(stale_dict, expected_stale)
        self.assertEqual(semi_stale_dict, expected_semi_stale)
        self.assertEqual(active_dict, expected_active)
Пример #5
0
    def testBasic(self):
        """Tests that a map is properly converted."""
        builder_map = data_types.BuilderStepMap({
            'fully pass':
            data_types.StepBuildStatsMap({
                'step1':
                uu.CreateStatsWithPassFails(1, 0),
            }),
            'never pass':
            data_types.StepBuildStatsMap({
                'step3':
                uu.CreateStatsWithPassFails(0, 1),
            }),
            'partial pass':
            data_types.StepBuildStatsMap({
                'step5':
                uu.CreateStatsWithPassFails(1, 1),
            }),
            'mixed':
            data_types.StepBuildStatsMap({
                'step7':
                uu.CreateStatsWithPassFails(1, 0),
                'step8':
                uu.CreateStatsWithPassFails(0, 1),
                'step9':
                uu.CreateStatsWithPassFails(1, 1),
            }),
        })
        output = expectations._ConvertBuilderMapToPassOrderedStringDict(
            builder_map)

        expected_output = collections.OrderedDict()
        expected_output[result_output.FULL_PASS] = {
            'fully pass': [
                'step1 (1/1)',
            ],
            'mixed': [
                'step7 (1/1)',
            ],
        }
        expected_output[result_output.NEVER_PASS] = {
            'never pass': [
                'step3 (0/1)',
            ],
            'mixed': [
                'step8 (0/1)',
            ],
        }
        expected_output[result_output.PARTIAL_PASS] = {
            'partial pass': {
                'step5 (1/2)': [
                    'http://ci.chromium.org/b/build_id0',
                ],
            },
            'mixed': {
                'step9 (1/2)': [
                    'http://ci.chromium.org/b/build_id0',
                ],
            },
        }
        self.assertEqual(output, expected_output)
Пример #6
0
  def testSemiStaleMap(self):
    """Tests that everything functions when regular data is provided."""
    expectation_map = data_types.TestExpectationMap({
        'foo':
        data_types.ExpectationBuilderMap({
            data_types.Expectation('foo', ['win', 'intel'], ['RetryOnFailure']):
            data_types.BuilderStepMap({
                'builder':
                data_types.StepBuildStatsMap({
                    'all_pass':
                    uu.CreateStatsWithPassFails(2, 0),
                    'all_fail':
                    uu.CreateStatsWithPassFails(0, 2),
                    'some_pass':
                    uu.CreateStatsWithPassFails(1, 1),
                }),
            }),
            data_types.Expectation('foo', ['linux', 'intel'], [
                                       'RetryOnFailure'
                                   ]):
            data_types.BuilderStepMap({
                'builder':
                data_types.StepBuildStatsMap({
                    'all_pass':
                    uu.CreateStatsWithPassFails(2, 0),
                }),
            }),
            data_types.Expectation('foo', ['mac', 'intel'], ['RetryOnFailure']):
            data_types.BuilderStepMap({
                'builder':
                data_types.StepBuildStatsMap({
                    'all_fail':
                    uu.CreateStatsWithPassFails(0, 2),
                }),
            }),
        }),
    })
    expected_ouput = {
        'foo': {
            '"RetryOnFailure" expectation on "win intel"': {
                'builder': {
                    'Fully passed in the following': [
                        'all_pass (2/2)',
                    ],
                    'Never passed in the following': [
                        'all_fail (0/2)',
                    ],
                    'Partially passed in the following': {
                        'some_pass (1/2)': [
                            data_types.BuildLinkFromBuildId('build_id0'),
                        ],
                    },
                },
            },
            '"RetryOnFailure" expectation on "intel linux"': {
                'builder': {
                    'Fully passed in the following': [
                        'all_pass (2/2)',
                    ],
                },
            },
            '"RetryOnFailure" expectation on "mac intel"': {
                'builder': {
                    'Never passed in the following': [
                        'all_fail (0/2)',
                    ],
                },
            },
        },
    }

    str_dict = result_output._ConvertTestExpectationMapToStringDict(
        expectation_map)
    self.assertEqual(str_dict, expected_ouput)