Esempio n. 1
0
    def run(self):
        try:
            json_loader = JsonLoader()
        except OSError:
            print('ERROR:: No proper action found. Please reinstall a CTS')
            return

        if self.metadata_container is None:
            return

        if not self.configuration.UseCase:
            json_loader.print_available_actions()
            return

        try:
            actions_to_take = json_loader.get_use_case(
                self.configuration.UseCase)
            specific_action = json_loader.get_use_case_action(
                actions_to_take['filepath'])
        except (IndexError, TypeError):
            json_loader.print_available_actions()
            print('ERROR:: The selected action was not found. Exiting..')
            return

        print('TEST_CASE::API crawling')
        api_explorer = ApiExplorer(self.metadata_container, self.configuration)
        self.discovery_container, status = api_explorer.discover(
            MetadataConstants.SERVICE_ROOT_URI, MetadataConstants.SERVICE_ROOT)
        configuration = self.configuration
        self.api_caller = ApiCaller(configuration)

        print('TEST_CASE::Action Runner')
        status = self.action_runner(specific_action)
        print('STATUS::{status}'.format(status=status))
Esempio n. 2
0
    def process_action(self, configuration):
        print "Using CTS in version %s" % (ColorPrinter.format_text(
            BuildInformation.BUILD_VERSION, bold=True))
        tests_manager = TestsManager()

        configuration_files = configuration.config_files
        test_scripts_configuration = get_configuration_from_files(
            configuration_files)

        if not configuration.use_case:
            print('\nMissing --use_case argument\n')
            JsonLoader().print_available_actions()
            sys.exit(64)  # EX_USAGE = 64    command line usage error

        test_scripts_configuration['UseCase'] = configuration.use_case[0]

        if test_scripts_configuration is None:
            sys.exit(-1)

        if not certificates_files_are_valid(test_scripts_configuration):
            sys.exit(-1)

        test_plan = TestsPackagesContainer()
        test_scripts_found = tests_manager.get_packages()
        test_scripts_found.filter(scripts='validate_use_case',
                                  remove_empty=True)
        test_plan += test_scripts_found

        if not test_plan.packages:
            print('No script selected to execute')
            exit(64)  # EX_USAGE = 64    command line usage error

        message = "Executing "
        print('Executing:')
        for package in test_plan.packages:
            for suite in package.suites:
                for script in suite.scripts:
                    print "\t* %s from suite %s from package %s" % (
                        script.name, suite.name, package.name)
                    message += "%s from suite %s from package %s, " % (
                        script.name, suite.name, package.name)

        self._logger.log_debug(message)

        if configuration.timeout is not None:
            message = "setting timeout execution to %s" % configuration.timeout[
                0]
            self._logger.log_debug(message)
            print('\n%s' % message)
            test_plan.set_scripts_timeout(configuration.timeout[0])

        execution_feed = ExecutionFeed(test_plan, test_scripts_configuration)

        for case in configuration.use_case:
            if not self.check_use_case_exist(case):
                print('\nUse Case was not found: %s ' % case)
                exit(64)  # EX_USAGE = 64    command line usage error
Esempio n. 3
0
    def run(self):
        json_loader = JsonLoader()
        if self.metadata_container is None:
            return

        if not self.configuration.UseCase:
            json_loader.print_available_actions()
            return

        actions_to_take = json_loader.get_use_case(self.configuration.UseCase)
        specific_action = json_loader.get_use_case_action(actions_to_take['filepath'])

        print('TEST_CASE::API crawling')
        api_explorer = ApiExplorer(self.metadata_container, self.configuration)
        self.discovery_container, status = api_explorer.discover(MetadataConstants.SERVICE_ROOT_URI,
                                                                 MetadataConstants.SERVICE_ROOT)
        configuration = self.configuration
        self.api_caller = ApiCaller(configuration)

        print('TEST_CASE::Action Runner')
        status = self.action_runner(specific_action)
        print('STATUS::{status}'.format(status=status))
Esempio n. 4
0
    def check_use_case_exist(sought_case):
        """
        :param sought_case: use case name
        :return: bool
        """
        use_cases, _ = JsonLoader().retrieve_available_actions()

        for case in use_cases:
            case_name = case['filename']

            if case_name == sought_case:
                return True
            elif case_name.lower() == sought_case.lower():
                print('\nDo you mean use case: %s? (%s was not found)' % (case_name, sought_case))
                exit(64)
        return False
Esempio n. 5
0
    def run(self):
        json_loader = JsonLoader()
        if self.metadata_container is None:
            return

        if not self.configuration.UseCase:
            json_loader.print_available_actions()
            return

        actions_to_take = json_loader.get_use_case(self.configuration.UseCase)
        specific_action = json_loader.get_use_case_action(
            actions_to_take['filepath'])

        print('TEST_CASE::API crawling')
        api_explorer = ApiExplorer(self.metadata_container, self.configuration)
        self.discovery_container, status = api_explorer.discover(
            MetadataConstants.SERVICE_ROOT_URI, MetadataConstants.SERVICE_ROOT)
        configuration = self.configuration
        self.api_caller = ApiCaller(configuration)

        print('TEST_CASE::Action Runner')
        status = self.action_runner(specific_action)
        print('STATUS::{status}'.format(status=status))
Esempio n. 6
0
    def process_action(self, configuration):
        print "Using CTS in version %s\n" % (ColorPrinter.format_text(
            BuildInformation.BUILD_VERSION, bold=True))

        JsonLoader().print_available_actions()
Esempio n. 7
0
 def __init__(self):
     self.use_cases, self.scenarios = \
         JsonLoader().retrieve_available_actions()