Ejemplo n.º 1
0
    def init(self):
        try:
            self._config = ConfigLoader.parse_cli()
            if self._config.exit_code is not None:
                return self._print_and_return(self._config.exit_code)
            ConfigLoader.update_config_from_file(self._config,
                                                 init_app_do_not_raise=True)
            if self._config.exit_code is not None:
                return self._print_and_return(self._config.exit_code)

            self._config.exit_code = LoggingHelper.init(self._config)
            if self._config.exit_code is not None:
                return self._print_and_return(self._config.exit_code)

            LoggingHelper.set_explicit_module_loglevels(self._config)

            TypePersister.set_storage_path(self._config.persist_dir)

            self._rule_manager = RuleManager(self._config)

            self._init_locale(self._config.locale)

            return None

        except Exception as ex:
            print('error: {}'.format(ex))
            print(traceback.format_exc())
            return 1
Ejemplo n.º 2
0
    def test_get_def_config_file(self):
        app_name = ConfigLoader.get_app_name()
        print('app_name =', app_name)

        config_file = ConfigLoader.get_def_config_file1()
        print('config_file1 =', config_file)

        config_file = ConfigLoader.get_def_config_file2()
        print('config_file2 =', config_file)
Ejemplo n.º 3
0
 def get_config(cls):
     config_file = SetupTest.get_def_config_file()
     args_in = '--config {} --foreground'.format(config_file)
     config = ConfigLoader.parse_cli(args_in.split())
     if config.exit_code is not None:
         raise SetupTestException()
     ConfigLoader.update_config_from_file(config)
     if config.exit_code is not None:
         raise SetupTestException()
     config.work_dir = cls.get_work_dir()
     config.logfile = os.path.join(config.work_dir, 'test.log')
     config.loglevel = 'debug'
     config.oh_rest_base_url = 'dummy_url'
     return config
Ejemplo n.º 4
0
    def test_parse_args(self):
        args_out = ConfigLoader.parse_cli('--config --foreground'.split())
        self.assertTrue(args_out.exit_code is not None)
        self.assertTrue(args_out.exit_code != 0)

        args_out = ConfigLoader.parse_cli(
            '--config fileDoesNotExist.xxx --foreground'.split())
        self.assertTrue(args_out.exit_code is not None)
        self.assertTrue(args_out.exit_code != 0)

        config_file = SetupTest.get_def_config_file()
        args_in = '--config {} --foreground'.format(config_file)
        print('args_in=', args_in)
        args_out = ConfigLoader.parse_cli(args_in.split())
        print('args_out=', args_out)
        self.assertTrue(args_out.exit_code is None)
Ejemplo n.º 5
0
    def test_get_app_name(self):

        app_name = ConfigLoader.get_app_name()
        print('app_name =', app_name)

        self.assertTrue(len(app_name) > 0)
        self.assertTrue(app_name.find('/') < 0)
        self.assertTrue(app_name.find('\\') < 0)
Ejemplo n.º 6
0
    def test_load_config_file(self):

        config_file = SetupTest.get_def_config_file()
        args_in = '--config {} --foreground'.format(config_file)
        # print('args_in=', args_in)
        config = ConfigLoader.parse_cli(args_in.split())
        # print('config=', config)
        self.assertTrue(config.exit_code is None)

        self.assertTrue(config.oh_rest_base_url is None)
        self.assertTrue(config.oh_username is None)
        self.assertTrue(config.oh_password is None)

        ConfigLoader.update_config_from_file(config)
        print('config={}'.format(config))
        self.assertTrue(config.exit_code is None)

        self.assertTrue(config.oh_rest_base_url is not None)
        self.assertTrue(config.loglevel is not None)
        self.assertTrue(config.logfile is not None)
Ejemplo n.º 7
0
    def test_set_explicit_module_loglevels_success(self):
        config = Config()

        logname_1 = 'app.logger_name_1'
        loglevel_1 = 'error'
        logcomp_1 = LoggingHelper.get_loglevel(loglevel_1)
        logname_2 = 'xxx.dfgdg.logger_name_1'
        loglevel_2 = 'warn'
        logcomp_2 = LoggingHelper.get_loglevel(loglevel_2)

        ConfigLoader.add_to_rule_config(
            config.rule_config, Constants.LOGGING,
            '{}|{}'.format(Constants.LOGLEVEL, logname_1), loglevel_1)
        ConfigLoader.add_to_rule_config(
            config.rule_config, Constants.LOGGING,
            '{}|{}'.format(Constants.LOGLEVEL, logname_2), loglevel_2)
        ConfigLoader.add_to_rule_config(
            config.rule_config, Constants.LOGGING,
            '{}|{}'.format(Constants.LOGLEVEL, logname_1), loglevel_1)

        LoggingHelper.set_explicit_module_loglevels(config)

        logger = logging.getLogger(logname_1)
        loglevel_out = logger.getEffectiveLevel()
        self.assertEqual(logcomp_1, loglevel_out)

        logger = logging.getLogger(logname_2)
        loglevel_out = logger.getEffectiveLevel()
        self.assertEqual(logcomp_2, loglevel_out)
Ejemplo n.º 8
0
    def test_set_explicit_module_loglevels_nocrash(self):
        config = Config()

        ConfigLoader.add_to_rule_config(config.rule_config, Constants.LOGGING,
                                        '{}||abc'.format(Constants.LOGLEVEL),
                                        'warn')
        ConfigLoader.add_to_rule_config(config.rule_config, Constants.LOGGING,
                                        '{}|abc'.format(Constants.LOGLEVEL),
                                        'warn')
        ConfigLoader.add_to_rule_config(config.rule_config, Constants.LOGGING,
                                        'dfasfdsafd', 'warn')

        LoggingHelper.set_explicit_module_loglevels(config)

        LoggingHelper.set_explicit_module_loglevels(None)
        LoggingHelper.set_explicit_module_loglevels({})
Ejemplo n.º 9
0
 def add_to_config(self, section_name, value_name, value):
     ConfigLoader.add_to_rule_config(self._config, section_name, value_name,
                                     str(value))
Ejemplo n.º 10
0
    def test_args_mode(self):

        args_out = ConfigLoader.parse_cli('-h'.split())
        self.assertTrue(args_out.parsed.help)
        self.assertTrue(args_out.exit_code == 0)
        args_out = ConfigLoader.parse_cli('--help'.split())
        self.assertTrue(args_out.parsed.help)
        self.assertTrue(args_out.exit_code == 0)
        # print('args_out:', args_out)

        args_out = ConfigLoader.parse_cli('--start'.split())
        self.assertTrue(args_out.parsed.start)

        args_out = ConfigLoader.parse_cli('--stop'.split())
        self.assertTrue(args_out.parsed.stop)

        args_out = ConfigLoader.parse_cli('--toogle'.split())
        self.assertTrue(args_out.parsed.toogle)

        args_out = ConfigLoader.parse_cli('--status'.split())
        self.assertTrue(args_out.parsed.status)

        args_out = ConfigLoader.parse_cli('--foreground'.split())
        self.assertTrue(args_out.parsed.foreground)
        args_out = ConfigLoader.parse_cli('-f'.split())
        self.assertTrue(args_out.parsed.foreground)

        args_out = ConfigLoader.parse_cli('--ensure'.split())
        self.assertTrue(args_out.parsed.ensure)
        args_out = ConfigLoader.parse_cli('-e'.split())
        self.assertTrue(args_out.parsed.ensure)

        # check no mode
        config_file = SetupTest.get_def_config_file()
        args_in = '--config {}'.format(config_file)
        print('args_in=', args_in)
        args_out = ConfigLoader.parse_cli(args_in.split())
        print('args_out=', args_out)
        self.assertTrue(args_out.exit_code is not None)

        options = [
            '--start', '--stop', '--toogle', '--foreground', '--status',
            '--ensure'
        ]

        for i in range(0, len(options) - 1):
            option1 = options[i]
            for k in range(i + 1, len(options)):
                option2 = options[k]
                print('CliArgs.evaluate([{}, {}]'.format(option1, option2))
                args_out = ConfigLoader.parse_cli([option1, option2])

                self.assertTrue(args_out.exit_code is not None)
                self.assertTrue(args_out.exit_code != 0)