예제 #1
0
    def parse_command(self, statement_line):
        # Splitting statement using shlex lexicator
        """
        Method contains big switch for division of statement line
        :param statement_line: singe line of code from test
        :return: argparse object with parsed data
        """

        self.variables = TestVariables()
        pom_list = shlex.split(statement_line, True, posix=True)
        first = pom_list[0]

        # if self.is_beakerLib_command(first, self.parser_ref):
        condition = bkrdoc.analysis.ConditionsForCommands()

        if condition.is_rlrun_command(first):
            self.get_rlrun_data(pom_list)

        elif condition.is_rpm_command(first):
            self.get_rpmcommand_data(pom_list)

        elif condition.is_check_or_assert_mount(first):
            self.get_check_or_assert_mount_data(pom_list)

        elif condition.is_assert_command(first):

            if condition.is_assert_grep(first):
                self.get_assert_grep_data(pom_list)

            elif condition.is_rlpass_or_rlfail_command(first):
                self.get_rlpass_or_rlfail_data(pom_list)

            elif condition.is_assert0(first):
                self.get_assert0_data(pom_list)

            elif condition.is_assert_comparasion(first):
                self.get_assert_comparison_data(pom_list)

            elif condition.is_assert_exists(first):
                self.get_assert_exits_data(pom_list)

            elif condition.is_assert_differ(first):
                self.get_assert_differ_data(pom_list)

            elif condition.is_assert_binary_origin(first):
                self.get_assertbinaryorigin_data(pom_list)

        elif condition.is_rlfilebackup_command(first):
            self.get_rlfilebackup_data(pom_list)

        elif condition.is_rlfilerestore_command(first):
            self.get_rlfile_restore_data(pom_list)

        elif condition.is_rlisrhel_or_rlisfedora_command(first):
            self.get_isrhel_or_isfedora_data(pom_list)

        elif condition.is_rlmount(first):
            self.get_rlmount_data(pom_list)

        elif condition.is_rlhash_or_rlunhash_command(first):
            self.get_rlhash_or_rlunhash_data(pom_list)

        elif condition.is_rllog_command(first):
            self.get_rllog_data(pom_list)

        elif condition.is_rldie_command(first):
            self.get_rldie_data(pom_list)

        elif condition.is_rlget_x_arch_command(first):
            self.get_rlget_commands_data(pom_list)

        elif condition.is_rlgetdistro_command(first):
            self.get_rlget_commands_data(pom_list)

        elif condition.is_rlgetphase_or_test_state_command(first):
            self.get_rlget_commands_data(pom_list)

        elif condition.is_rlreport_command(first):
            self.get_rlreport_data(pom_list)

        elif condition.is_rlwatchdog_command(first):
            self.get_rlwatchdog_data(pom_list)

        elif condition.is_rlbundlelogs_command(first):
            self.get_rlbundlelogs_data(pom_list)

        elif condition.is_rlservicexxx(first):
            self.get_rlservicexxx_data(pom_list)

        elif condition.is_sebooleanxxx_command(first):
            self.get_sebooleanxxx_data(pom_list)

        elif condition.is_rlshowrunningkernel_command(first):
            self.get_rlshowrunningkernel_data(pom_list)

        elif condition.is_get_or_check_makefile_requires(first):
            self.get_rlget_or_rlcheck_makefilerequeries_data(pom_list)

        elif condition.is_rlcleanup_apend_or_prepend_command(first):
            self.get_rlcleanup_apend_or_prepend_data(pom_list)

        elif condition.is_rlfilesubmit_command(first):
            self.get_rlfilesubmit_data(pom_list)

        elif condition.is_rlperftime_runsintime_command(first):
            self.get_rlperftime_runsintime_data(pom_list)

        elif condition.is_rlperftime_avgfromruns_command(first):
            self.get_rlperftime_avgfromruns_data(pom_list)

        elif condition.is_rlshowpackageversion_command(first):
            self.get_rlshowpackageversion_data(pom_list)

        elif condition.is_rljournalprint_command(first):
            self.get_rljournalprint_data(pom_list)

        elif condition.is_rlimport_command(first):
            self.get_rlimport_data(pom_list)

        elif condition.is_rlwaitforxxx_command(first):
            self.get_rlwaitforxxx_data(pom_list, first)

        elif condition.is_rlwaitfor_command(first):
            self.get_rlwaitfor_data(pom_list)

        elif condition.is_virtualxxx_command(first):
            self.get_rlvirtualx_xxx_data(pom_list)

        else:
            self.unknown_command(statement_line)

        return self.parsed_param_ref, self.variables