示例#1
0
    def test_update_impact_beta(self):
        """Tests updating impact to Beta."""
        self.testcase.is_impact_set_flag = True
        self.testcase.impact_beta_version = '100.1044.44.44'

        mock_issue = self._make_mock_issue()

        issue_filer.update_issue_impact_labels(self.testcase, mock_issue)
        six.assertCountEqual(self, ['Security_Impact-Beta', 'FoundIn-100'],
                             mock_issue.labels.added)
        six.assertCountEqual(self, [], mock_issue.labels.removed)
示例#2
0
    def test_update_impact_stable(self):
        """Tests updating impact to Stable."""
        self.testcase.is_impact_set_flag = True
        self.testcase.impact_stable_version = '99.1024.11.42'

        mock_issue = self._make_mock_issue()

        issue_filer.update_issue_impact_labels(self.testcase, mock_issue)
        six.assertCountEqual(self, ['Security_Impact-Stable', 'FoundIn-99'],
                             mock_issue.labels.added)
        six.assertCountEqual(self, [], mock_issue.labels.removed)
示例#3
0
  def test_replace_same_impact(self):
    """Tests replacing same impact."""
    self.testcase.is_impact_set_flag = True

    mock_issue = self._make_mock_issue()
    mock_issue.labels.add('Security_Impact-Head')
    mock_issue.labels.reset_tracking()

    issue_filer.update_issue_impact_labels(self.testcase, mock_issue)
    six.assertCountEqual(self, [], mock_issue.labels.added)
    six.assertCountEqual(self, [], mock_issue.labels.removed)
示例#4
0
  def test_no_impact_for_unreproducible_testcase(self):
    """Tests no impact for unreproducible testcase on trunk and which also
    does not crash on stable and beta."""
    self.testcase.is_impact_set_flag = True
    self.testcase.crash_state = ''

    mock_issue = self._make_mock_issue()

    issue_filer.update_issue_impact_labels(self.testcase, mock_issue)
    six.assertCountEqual(self, [], mock_issue.labels.added)
    six.assertCountEqual(self, [], mock_issue.labels.removed)
示例#5
0
    def test_update_impact_beta(self):
        """Tests updating impact to Beta."""
        self.testcase.is_impact_set_flag = True
        self.testcase.impact_beta_version = 'Beta'

        mock_issue = self._make_mock_issue()

        issue_filer.update_issue_impact_labels(self.testcase, mock_issue)
        self.assertItemsEqual(['Security_Impact-Beta'],
                              mock_issue.labels.added)
        self.assertItemsEqual([], mock_issue.labels.removed)
示例#6
0
    def test_replace_impact(self):
        """Tests replacing impact."""
        self.testcase.is_impact_set_flag = True

        mock_issue = self._make_mock_issue()
        mock_issue.labels.add('Security_Impact-Beta')
        mock_issue.labels.reset_tracking()

        issue_filer.update_issue_impact_labels(self.testcase, mock_issue)
        self.assertItemsEqual(['Security_Impact-Head'],
                              mock_issue.labels.added)
        self.assertItemsEqual(['Security_Impact-Beta'],
                              mock_issue.labels.removed)
示例#7
0
def _update_issue_when_uploaded_testcase_is_processed(
    policy, testcase, issue, description, update_bug_summary, notify):
  """Add issue comment when uploaded testcase is processed."""
  if update_bug_summary and testcase.is_crash():
    issue.title = data_handler.get_issue_summary(testcase)

  # Impact labels like impacting head/beta/stable only apply for Chromium.
  if testcase.project_name == 'chromium':
    issue_filer.update_issue_impact_labels(testcase, issue)

  # Add severity labels for all project types.
  comment = description + _update_issue_security_severity_and_get_comment(
      policy, testcase, issue)
  issue.save(new_comment=comment, notify=notify)
示例#8
0
  def test_component_dont_add_label(self):
    """Test that we don't set labels for component builds."""
    self.testcase.job_type = 'job'
    self.testcase.put()

    data_types.Job(
        name='job',
        environment_string=(
            'RELEASE_BUILD_BUCKET_PATH = '
            'https://example.com/blah-v8-component-([0-9]+).zip\n')).put()

    self.testcase.is_impact_set_flag = True
    mock_issue = self._make_mock_issue()
    issue_filer.update_issue_impact_labels(self.testcase, mock_issue)
    self.assertItemsEqual([], mock_issue.labels.added)
    self.assertItemsEqual([], mock_issue.labels.removed)
示例#9
0
    def test_component_add_label(self):
        """Test that we set labels for component builds."""
        self.testcase.job_type = 'job'
        self.testcase.impact_stable_version = 'Stable'
        self.testcase.impact_beta_version = 'Beta'
        self.testcase.put()

        data_types.Job(
            name='job',
            environment_string=(
                'RELEASE_BUILD_BUCKET_PATH = '
                'https://example.com/blah-v8-component-([0-9]+).zip\n')).put()

        self.testcase.is_impact_set_flag = True
        mock_issue = self._make_mock_issue()
        issue_filer.update_issue_impact_labels(self.testcase, mock_issue)
        six.assertCountEqual(self, ['Security_Impact-Stable'],
                             mock_issue.labels.added)
        six.assertCountEqual(self, [], mock_issue.labels.removed)