def test_empty(self):
   """Test empty."""
   testcase = data_types.Testcase()
   testcase.bug_information = ''
   testcase.group_bug_information = 0
   self.assertListEqual([],
                        search_tokenizer.tokenize_bug_information(testcase))
 def test_tokenize(self):
   """Test tokenize."""
   testcase = data_types.Testcase()
   testcase.bug_information = '123'
   testcase.group_bug_information = 456
   self.assertListEqual(['123', '456'],
                        search_tokenizer.tokenize_bug_information(testcase))
 def test_none(self):
   """Test none."""
   testcase = data_types.Testcase()
   testcase.bug_information = None
   testcase.group_bug_information = None
   self.assertListEqual([],
                        search_tokenizer.tokenize_bug_information(testcase))
Esempio n. 4
0
    def populate_indices(self):
        """Populate keywords for fast test case list searching."""
        self.keywords = list(
            search_tokenizer.tokenize(self.crash_state)
            | search_tokenizer.tokenize(self.crash_type)
            | search_tokenizer.tokenize(self.fuzzer_name)
            | search_tokenizer.tokenize(self.overridden_fuzzer_name)
            | search_tokenizer.tokenize(self.job_type)
            | search_tokenizer.tokenize(self.platform_id))

        self.bug_indices = search_tokenizer.tokenize_bug_information(self)
        self.has_bug_flag = bool(self.bug_indices)
        self.is_a_duplicate_flag = bool(self.duplicate_of)
        fuzzer_name_indices = list(
            set([self.fuzzer_name, self.overridden_fuzzer_name]))
        self.fuzzer_name_indices = [f for f in fuzzer_name_indices if f]

        # If the impact task hasn't been run (aka is_impact_set_flag=False) OR
        # if impact isn't applicable (aka has_impacts() is False), we wipe all
        # the impact fields' indices.
        if self.has_impacts() and self.is_impact_set_flag:
            self.impact_extended_stable_version_indices = (
                search_tokenizer.tokenize_impact_version(
                    self.impact_extended_stable_version))
            self.impact_stable_version_indices = (
                search_tokenizer.tokenize_impact_version(
                    self.impact_stable_version))
            self.impact_beta_version_indices = (
                search_tokenizer.tokenize_impact_version(
                    self.impact_beta_version))
            self.impact_head_version_indices = (
                search_tokenizer.tokenize_impact_version(
                    self.impact_head_version))
            self.impact_version_indices = list(
                set(self.impact_extended_stable_version_indices +
                    self.impact_stable_version_indices +
                    self.impact_head_version_indices +
                    self.impact_beta_version_indices))
            if self.impact_extended_stable_version:
                self.impact_version_indices.append('extended_stable')
            if self.impact_beta_version:
                self.impact_version_indices.append('beta')
            if self.impact_stable_version:
                self.impact_version_indices.append('stable')
            if not self.impacts_production():
                self.impact_version_indices.append('head')
        else:
            self.impact_version_indices = []
            self.impact_extended_stable_version_indices = []
            self.impact_stable_version_indices = []
            self.impact_beta_version_indices = []