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
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)
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
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)
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)
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)
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)
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({})
def add_to_config(self, section_name, value_name, value): ConfigLoader.add_to_rule_config(self._config, section_name, value_name, str(value))
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)