def setUp(self): helpers.patch(self, [ 'base.utils.is_chromium', 'bot.tasks.impact_task.get_impacts_from_url', 'bot.tasks.impact_task.get_impacts_on_prod_builds', 'bot.tasks.setup.setup_testcase', 'build_management.build_manager.is_custom_binary', 'build_management.build_manager.has_production_builds', 'bot.testcase_manager.get_command_line_for_application', 'base.tasks.add_task', ]) impacts = impact_task.Impacts( stable=impact_task.Impact('stable', False, 'trace-stable'), beta=impact_task.Impact('beta', True, 'trace-beta'), extended_stable=impact_task.Impact('extended stable', False, 'trace-extended-stable')) self.mock.is_chromium.return_value = True self.mock.is_custom_binary.return_value = False self.mock.has_production_builds.return_value = True self.mock.get_impacts_from_url.return_value = impacts self.mock.setup_testcase.return_value = (['a'], None, 'path') self.mock.get_impacts_on_prod_builds.return_value = impacts self.testcase = data_types.Testcase() self.testcase.is_impact_set_flag = False self.testcase.status = 'Processed' self.testcase.crash_stacktrace = 'trace' self.testcase.regression = '123:456' self.testcase.job_type = 'job2' self.testcase.project_name = 'chromium' self.testcase.put()
def test_get_impacts_known_component_es_not_exists(self): """Test getting impacts for a known component when extended stable doesn't exists.""" self.mock.get_component_name.return_value = 'v8' self.mock.get_impact.side_effect = [ impact_task.Impact('s', False), impact_task.Impact('b', True) ] impacts = impact_task.get_impacts_from_url('123:456', 'job', 'windows') self.assertEqual('', impacts.extended_stable.version) self.assertFalse(impacts.extended_stable.likely) self.assertEqual('s', impacts.stable.version) self.assertFalse(impacts.stable.likely) self.assertEqual('b', impacts.beta.version) self.assertTrue(impacts.beta.likely) self.mock.get_start_and_end_revision.assert_has_calls( [mock.call('123:456', 'job')]) self.mock.get_build_to_revision_mappings.assert_has_calls( [mock.call('windows')]) self.mock.get_impact.assert_has_calls([ mock.call({ 'version': '74.0.1345.34', 'revision': '666666' }, 1, 100), mock.call({ 'version': '75.0.1353.43', 'revision': '777777' }, 1, 100) ])
def setUp(self): """Setup for get impacts from url test.""" super().setUp() helpers.patch(self, [ 'bot.tasks.impact_task.get_start_and_end_revision', 'bot.tasks.impact_task.get_impact', 'build_management.revisions.get_build_to_revision_mappings', 'build_management.revisions.revision_to_branched_from', 'datastore.data_handler.get_component_name', ]) self.mock.get_component_name.return_value = None self.mock.revision_to_branched_from.side_effect = ( self.mock_revision_to_branched_from) self.mock.get_start_and_end_revision.return_value = (1, 100) self.mock.get_build_to_revision_mappings.return_value = { 'stable': { 'revision': '398287', 'version': '74.0.1345.34' }, 'beta': { 'revision': '399171', 'version': '75.0.1353.43' } } self.mock.get_impact.side_effect = [ impact_task.Impact(), impact_task.Impact('s', False), impact_task.Impact('b', True) ]
def setUp(self): helpers.patch(self, [ 'bot.tasks.impact_task.get_impact_on_build', 'bot.tasks.impact_task.get_impacts_from_url', 'bot.testcase_manager.get_command_line_for_application', 'chrome.build_info.get_build_to_revision_mappings', ]) self.mock.get_build_to_revision_mappings.return_value = { 'stable': { 'revision': '398287', 'version': '74.0.1345.34' }, 'beta': { 'revision': '399171', 'version': '75.0.1353.43' }, 'canary': { 'revision': '400000', 'version': '76.0.1234.43' } } self.impacts = impact_task.Impacts( stable=impact_task.Impact('s', False), beta=impact_task.Impact('b', True), extended_stable=impact_task.Impact('es', False), head=impact_task.Impact('76.0.1234.43', False)) self.testcase = data_types.Testcase() self.testcase.job_type = 'job' self.testcase.impact_extended_stable_version = 'es-ver' self.testcase.impact_stable_version = 's-ver' self.testcase.impact_beta_version = 'b-ver' self.testcase.regression = '123:456'
def test_get_impacts_canary_not_exists(self): """Test getting impacts when extended stable exists.""" self.mock.get_build_to_revision_mappings.return_value = { 'extended_stable': { 'revision': '398287', 'version': '74.0.1345.34' }, 'stable': { 'revision': '398287', 'version': '74.0.1345.34' }, 'beta': { 'revision': '399171', 'version': '75.0.1353.43' }, 'dev': { 'revision': '400000', 'version': '76.0.1234.43' } } self.mock.get_impact.side_effect = [ impact_task.Impact('es', False), impact_task.Impact('s', False), impact_task.Impact('b', True), impact_task.Impact('d', False) ] impacts = impact_task.get_impacts_from_url('123:456', 'job', 'windows') self.assertEqual('es', impacts.extended_stable.version) self.assertFalse(impacts.extended_stable.likely) self.assertEqual('s', impacts.stable.version) self.assertFalse(impacts.stable.likely) self.assertEqual('b', impacts.beta.version) self.assertTrue(impacts.beta.likely) self.assertEqual('d', impacts.head.version) self.assertFalse(impacts.head.likely) self.mock.get_start_and_end_revision.assert_has_calls( [mock.call('123:456', 'job')]) self.mock.get_build_to_revision_mappings.assert_has_calls( [mock.call('windows')]) self.mock.get_impact.assert_has_calls([ mock.call({ 'version': '74.0.1345.34', 'revision': '398287' }, 1, 100), mock.call({ 'version': '74.0.1345.34', 'revision': '398287' }, 1, 100), mock.call({ 'version': '75.0.1353.43', 'revision': '399171' }, 1, 100), mock.call({ 'version': '76.0.1234.43', 'revision': '400000' }, 1, 100) ])
def setUp(self): helpers.patch(self, [ 'bot.tasks.impact_task.get_impact_on_build', 'bot.tasks.impact_task.get_impacts_from_url', 'bot.testcase_manager.get_command_line_for_application', ]) self.impacts = impact_task.Impacts(stable=impact_task.Impact( 's', False), beta=impact_task.Impact('b', True)) self.testcase = data_types.Testcase() self.testcase.job_type = 'job' self.testcase.impact_stable_version = 's-ver' self.testcase.impact_beta_version = 'b-ver' self.testcase.regression = '123:456'
def test_not_crash(self): """Test not crashing and returning empty impact.""" self.result.is_crash.return_value = False self.assertEqual( impact_task.Impact(), impact_task.get_impact_on_build('stable', '53', self.testcase, 'path'))
def setUp(self): helpers.patch(self, [ 'bot.tasks.impact_task.get_start_and_end_revision', 'bot.tasks.impact_task.get_impact', 'build_management.revisions.get_build_to_revision_mappings', 'datastore.data_handler.get_component_name', ]) self.mock.get_component_name.return_value = None self.mock.get_start_and_end_revision.return_value = (1, 100) self.mock.get_build_to_revision_mappings.return_value = { 'stable': 'stable-version', 'beta': 'beta-version' } self.mock.get_impact.side_effect = [ impact_task.Impact('s', False), impact_task.Impact('b', True) ]
def test_app_failed_on_beta(self): """Test app fail on beta.""" self.mock.get_impact_on_build.side_effect = [ self.impacts.stable, impact_task.AppFailedException() ] self.assertEqual( impact_task.Impacts(self.impacts.stable, impact_task.Impact()), impact_task.get_impacts_on_prod_builds(self.testcase, 'path')) self.mock.get_impact_on_build.assert_has_calls([ mock.call('stable', self.testcase.impact_stable_version, self.testcase, 'path'), mock.call('beta', self.testcase.impact_beta_version, self.testcase, 'path'), ]) self.mock.get_impacts_from_url.assert_has_calls([])