def test_specific_dir_config(self): parser = posless.ArgumentParser( formatter_class=parserconf.FilteredHelpFormatter) parserconf.addargs(parser, config_dirname='foo') self._populate_parser(parser) args = parser.parse_args() suffix = os.path.join('foo', parserconf.DEFAULT_CONFIG_FILENAME) self.assertTrue(args.config_file.endswith(suffix), args.config_file)
# Please contact Bull S. A. S. for details about its license. ############################################################################### """ Simple program for unit tests of BXI Log Python library. See testparserconf.py for details. """ import bxi.base.log as bxilog import bxi.base.posless as posless import bxi.base.parserconf as bxiparserconf if __name__ == "__main__": parser = posless.ArgumentParser( description='Unit Testing ParserConf', formatter_class=bxiparserconf.FilteredHelpFormatter) bxiparserconf.addargs(parser) args = parser.parse_args() bxilog.panic("A panic message") bxilog.alert("An alert message") bxilog.critical("A critical message") bxilog.error("An error message") bxilog.warning("A warning message") bxilog.notice("A notice message") bxilog.output("An output message") bxilog.info("An info message") bxilog.debug("A debug message") bxilog.fine("A fine message") bxilog.trace("A trace message")
for node in nodes: _LOGGER.warning("%s terminated with %s: %s", node, ret, task.node_buffer(node)) if task.num_timeout(): _LOGGER.warning("%d timeout reached: %s", task.num_timeout(), ", ".join(task.iter_keys_timeout())) rc = 1 return rc if "__main__" == __name__: import bxi.base.posless as argparse PARSER = argparse.ArgumentParser() PARSER.add_argument("--timeout", "-t", default=5, type=int) PARSER.add_argument("--loglevel", "-l", default=":debug,bxi:output", type=str) PARSER.add_argument("cmd", default="uname -r", type=str) PARSER.add_argument("--topo", type=str, default="") PARSER.add_argument("--nodes", "-w", type=str, default="") PARSER.add_argument("--no-remote", action="store_true", default=False) ARGS = PARSER.parse_args() bxilog.basicConfig(cfg_items=ARGS.loglevel) del ARGS.loglevel tasked(**vars(ARGS))
def test_def(self): # Hack around posless/argparse problem with argv parsing. SAVED_ARGV = sys.argv sys.argv = [sys.argv[0], '--config-dir', self.bxiconfigdir] parser = posless.ArgumentParser( formatter_class=parserconf.FilteredHelpFormatter) parserconf.addargs(parser, domain_name='bar') self._populate_parser(parser) args = parser.parse_args() suffix = os.path.join(self.bxiconfigdir, parserconf.DEFAULT_CONFIG_FILENAME) self.assertTrue(args.config_file.endswith(suffix), args.config_file) self.assertEquals(args.variable, 'Default_Value') self.assertEquals(args.stuff, 'Default_stuff') bxilog.cleanup() fileconf = os.path.join(self.bxiconfigdir, parserconf.DEFAULT_CONFIG_FILENAME) with open(fileconf, 'w') as f: f.write(""" [My Section] variable = 'foo' """) parser = posless.ArgumentParser( formatter_class=parserconf.FilteredHelpFormatter) parserconf.addargs(parser, domain_name='bar') self._populate_parser(parser) args = parser.parse_args() self.assertEquals(os.path.basename(args.config_file), parserconf.DEFAULT_CONFIG_FILENAME) self.assertEquals(args.variable, 'foo') self.assertEquals(args.stuff, 'Default_stuff') bxilog.cleanup() fileconf = os.path.join(self.bxiconfigdir, 'bar.conf') with open(fileconf, 'w') as f: f.write(""" [My Section] variable = 'bar' """) parser = posless.ArgumentParser( formatter_class=parserconf.FilteredHelpFormatter) parserconf.addargs(parser, domain_name='bar') self._populate_parser(parser) args = parser.parse_args() self.assertEquals(args.config_file, fileconf) self.assertEquals(args.variable, 'bar') self.assertEquals(args.stuff, 'Default_stuff') bxilog.cleanup() fileconf = os.path.join(self.bxiconfigdir, os.path.basename(sys.argv[0]) + '.conf') with open(fileconf, 'w') as f: f.write(""" [My Section] variable = 'baz' """) parser = posless.ArgumentParser( formatter_class=parserconf.FilteredHelpFormatter) parserconf.addargs(parser, domain_name='bar') self._populate_parser(parser) args = parser.parse_args() self.assertEquals(args.config_file, fileconf) self.assertEquals(args.variable, 'baz') self.assertEquals(args.stuff, 'Default_stuff') bxilog.cleanup() fileconf = os.path.join(self.bxiconfigdir, 'specific.conf') with open(fileconf, 'w') as f: f.write(""" [My Section] variable = 'spec' """) sys.argv = [sys.argv[0], '--config-file', fileconf] parser = posless.ArgumentParser( formatter_class=parserconf.FilteredHelpFormatter) parserconf.addargs(parser, domain_name='bar') self._populate_parser(parser) args = parser.parse_args() self.assertEquals(args.config_file, fileconf) self.assertEquals(args.variable, 'spec') self.assertEquals(args.stuff, 'Default_stuff') os.environ['VAR'] = 'env' bxilog.cleanup() parser = posless.ArgumentParser( formatter_class=parserconf.FilteredHelpFormatter) parserconf.addargs(parser, domain_name='bar') self._populate_parser(parser) args = parser.parse_args() self.assertEquals(args.config_file, fileconf) self.assertEquals(args.variable, 'env') self.assertEquals(args.stuff, 'Default_stuff') bxilog.cleanup() parser = posless.ArgumentParser( formatter_class=parserconf.FilteredHelpFormatter) sys.argv = [ sys.argv[0], '--config-file', fileconf, '--variable', 'command_line' ] parserconf.addargs(parser, domain_name='bar') self._populate_parser(parser) args = parser.parse_args() self.assertEquals(args.config_file, fileconf) self.assertEquals(args.variable, 'command_line') self.assertEquals(args.stuff, 'Default_stuff') sys.argv = SAVED_ARGV