def testResultMatchMultiMatch(self): """Test adding a passing result when multiple expectations match.""" r = data_types.Result('some/test/case', ['win', 'win10'], 'Pass', 'pixel_tests', 'build_id') e = data_types.Expectation('some/test/*', ['win10'], 'Failure') e2 = data_types.Expectation('some/test/case', ['win10'], 'Failure') expectation_map = data_types.TestExpectationMap({ 'some/test/*': data_types.ExpectationBuilderMap({ e: data_types.BuilderStepMap(), e2: data_types.BuilderStepMap(), }), }) found_matching = expectations._AddResultToMap(r, 'builder', expectation_map) self.assertTrue(found_matching) stats = data_types.BuildStats() stats.AddPassedBuild() expected_expectation_map = { 'some/test/*': { e: { 'builder': { 'pixel_tests': stats, }, }, e2: { 'builder': { 'pixel_tests': stats, }, } } } self.assertEqual(expectation_map, expected_expectation_map)
def testResultMatchPassingNew(self): """Test adding a passing result when no results for a builder exist.""" r = data_types.Result('some/test/case', ['win', 'win10'], 'Pass', 'pixel_tests', 'build_id') e = data_types.Expectation('some/test/*', ['win10'], 'Failure') expectation_map = { 'some/test/*': { e: {}, }, } found_matching = expectations._AddResultToMap(r, 'builder', expectation_map) self.assertTrue(found_matching) stats = data_types.BuildStats() stats.AddPassedBuild() expected_expectation_map = { 'some/test/*': { e: { 'builder': { 'pixel_tests': stats, }, }, }, } self.assertEqual(expectation_map, expected_expectation_map)
def testResultMatchFailingExisting(self): """Test adding a failing result when results for a builder exist.""" r = data_types.Result('some/test/case', ['win', 'win10'], 'Failure', 'pixel_tests', 'build_id') e = data_types.Expectation('some/test/*', ['win10'], 'Failure') stats = data_types.BuildStats() stats.AddPassedBuild() expectation_map = data_types.TestExpectationMap({ 'some/test/*': data_types.ExpectationBuilderMap({ e: data_types.BuilderStepMap({ 'builder': data_types.StepBuildStatsMap({ 'pixel_tests': stats, }), }), }), }) found_matching = expectations._AddResultToMap(r, 'builder', expectation_map) self.assertTrue(found_matching) stats = data_types.BuildStats() stats.AddFailedBuild('build_id') stats.AddPassedBuild() expected_expectation_map = { 'some/test/*': { e: { 'builder': { 'pixel_tests': stats, }, }, }, } self.assertEqual(expectation_map, expected_expectation_map)
def testResultNoMatch(self): """Tests that a result is not added if no match is found.""" r = data_types.Result('some/test/case', ['win', 'win10'], 'Failure', 'pixel_tests', 'build_id') e = data_types.Expectation('some/test/*', ['win10', 'foo'], 'Failure') expectation_map = {'some/test/*': {e: {}}} found_matching = expectations._AddResultToMap(r, 'builder', expectation_map) self.assertFalse(found_matching) expected_expectation_map = {'some/test/*': {e: {}}} self.assertEqual(expectation_map, expected_expectation_map)