예제 #1
0
    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)
예제 #2
0
# 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")
예제 #3
0
파일: task.py 프로젝트: OpenBXI/bxiutil
                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))
예제 #4
0
    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