Ejemplo n.º 1
0
 def test_03_top_level_validator_fails_projects_not_list(self):
     self.assertFalse(
         schema_validation.TopLevelProjectsValidator(
             {
                 FieldKeys.PROJECTS: "Ramu"
             },
             DUMMY_INDEX_FILE
         ).validate().success
     )
Ejemplo n.º 2
0
 def test_02_top_level_validator_fails_missing_project(self):
     self.assertFalse(
         schema_validation.TopLevelProjectsValidator(
             {
                 "Prj": [
                     1, 2
                 ]
             },
             DUMMY_INDEX_FILE
         ).validate().success
     )
Ejemplo n.º 3
0
 def test_01_top_level_validator_success_valid_projects_list(self):
     self.assertTrue(
         schema_validation.TopLevelProjectsValidator(
             {
                 FieldKeys.PROJECTS: [
                     1, 2
                 ]
             },
             DUMMY_INDEX_FILE
         )
     )
Ejemplo n.º 4
0
    def run(self):
        """
        Runs the index ci tests.
        """
        # Initialize
        overall_success = True

        # Read the files, one by one and validate them.
        messages = []
        for index_file in self.index_files:
            if "index_template" not in index_file:
                file_data, err = utils.load_yaml(index_file)
                if file_data:
                    messages = []

                    # Perform primary validation
                    m = schema_validation.TopLevelProjectsValidator(
                        file_data, index_file).validate()
                    messages.append(m)
                    # If primary validation was successful, move forward.
                    if m.success:
                        entries = file_data.get(constants.FieldKeys.PROJECTS)
                        # Extract entries and start evaluating them, one by one
                        for entry in entries:
                            # Instruct all Clone validators to use git-url
                            # and git-branch to clone
                            entry[constants.CheckKeys.CLONE] = True
                            entry[constants.CheckKeys.STATE] = self.state
                            # Initialize validators from list and validate
                            # data.
                            for v in self.validators:
                                m = v(entry, index_file).validate()
                                if not m.success:
                                    overall_success = False
                                messages.append(m)
                    else:
                        overall_success = False
                        messages.append(m)
                else:
                    t = "Could not fetch data from index file {}\nError:{}"
                    t = t.format(index_file, err)
                    utils.print_out(t, verbose=self.verbose)
                self.add_summary(index_file, messages)
        self.state.clean_state()
        return overall_success, self.summary