コード例 #1
0
    def assert_parse_args_fails(self, args, message, exit_code=None, stdout=None):
        if exit_code is None:
            exit_code = 2
        if stdout is None:
            stdout = io.StringIO()
        x = ArgumentParser(stdout=stdout)
        with self.assertRaises(x.Error) as cm:
            x.parse_args(args)

        self.assertEqual("{}".format(cm.exception), "{}".format(message))
        self.assertEqual(cm.exception.exit_code, exit_code)
コード例 #2
0
ファイル: main.py プロジェクト: denversc/cligen
def run():
    arg_parser = ArgumentParser()
    try:
        app = arg_parser.parse_args()
    except arg_parser.Error as e:
        if e.exit_code == 2:
            print("ERROR: invalid command-line arguments: {}".format(e), file=sys.stderr)
            print("Run with --help for help", file=sys.stderr)
        elif e.exit_code != 0:
            print("ERROR: {}".format(e), file=sys.stderr)
        return e.exit_code

    try:
        app.run()
    except app.Error as e:
        print("ERROR: {}".format(e), file=sys.stderr)
        return 1

    return 0
コード例 #3
0
    def assert_parse_args_succeeds(
            self, args,
            target_language=DEFAULT_VALUE,
            source_file_path=DEFAULT_VALUE,
            output_file_paths=DEFAULT_VALUE,
            inline=DEFAULT_VALUE,
            encoding=DEFAULT_VALUE,
            newline=DEFAULT_VALUE,
    ):
        stdout = io.StringIO()
        x = ArgumentParser(stdout=stdout)

        app = x.parse_args(args)

        if target_language is self.DEFAULT_VALUE:
            target_language = x.targets["c"]
        else:
            target_language = x.targets[target_language]

        if source_file_path is self.DEFAULT_VALUE:
            source_file_path = "cligen.xml"

        if output_file_paths is self.DEFAULT_VALUE:
            output_file_paths = None
        else:
            output_file_paths = tuple(output_file_paths)

        if inline is self.DEFAULT_VALUE:
            inline = False

        if encoding is self.DEFAULT_VALUE:
            encoding = None

        if newline is self.DEFAULT_VALUE:
            newline = None

        self.assertIs(app.target_language, target_language)
        self.assertEqual(app.source_file_path, source_file_path)
        self.assertEqual(app.output_file_paths, output_file_paths)
        self.assertIs(app.inline, inline)
        self.assertIs(app.encoding, encoding)
        self.assertEqual(app.newline, newline)
コード例 #4
0
def run():
    arg_parser = ArgumentParser()
    try:
        app = arg_parser.parse_args()
    except arg_parser.Error as e:
        if e.exit_code == 2:
            print("ERROR: invalid command-line arguments: {}".format(e),
                  file=sys.stderr)
            print("Run with --help for help", file=sys.stderr)
        elif e.exit_code != 0:
            print("ERROR: {}".format(e), file=sys.stderr)
        return e.exit_code

    try:
        app.run()
    except app.Error as e:
        print("ERROR: {}".format(e), file=sys.stderr)
        return 1

    return 0
コード例 #5
0
 def test_error_KeywordArgs(self):
     x = ArgumentParser()
     with self.assertRaises(x.Error) as cm:
         x.error(message="blah blah")
     self.assertEqual("{}".format(cm.exception), "blah blah")
     self.assertEqual(cm.exception.exit_code, 2)
コード例 #6
0
 def test_exit_DefaultArgs(self):
     x = ArgumentParser()
     with self.assertRaises(x.Error) as cm:
         x.exit()
     self.assertEqual("{}".format(cm.exception), "None")
     self.assertEqual(cm.exception.exit_code, 0)
コード例 #7
0
 def test_exit_KeywordArgs(self):
     x = ArgumentParser()
     with self.assertRaises(x.Error) as cm:
         x.exit(status=6, message="whatever")
     self.assertEqual("{}".format(cm.exception), "whatever")
     self.assertEqual(cm.exception.exit_code, 6)
コード例 #8
0
 def test_exit_PositionalArgs(self):
     x = ArgumentParser()
     with self.assertRaises(x.Error) as cm:
         x.exit(5, "whatever")
     self.assertEqual("{}".format(cm.exception), "whatever")
     self.assertEqual(cm.exception.exit_code, 5)
コード例 #9
0
 def test___init___DefaultArgs(self):
     x = ArgumentParser()
     self.assertIs(x.stdout, sys.stdout)
コード例 #10
0
 def test___init___KeywordArgs(self):
     stdout = object()
     x = ArgumentParser(stdout=stdout)
     self.assertIs(x.stdout, stdout)
コード例 #11
0
 def test_exit_code_2(self):
     with self.assertRaises(ArgumentParser.Error) as cm:
         raise ArgumentParser.Error(message="message", exit_code=2)
     self.assertEqual(cm.exception.exit_code, 2)
コード例 #12
0
 def test___init___KeywordArgs(self):
     with self.assertRaises(ArgumentParser.Error) as cm:
         raise ArgumentParser.Error(message="message", exit_code=0)
     self.assertEqual("{}".format(cm.exception), "message")
     self.assertEqual(cm.exception.exit_code, 0)
コード例 #13
0
 def test___init___PositionalArgs(self):
     stdout = object()
     x = ArgumentParser(stdout)
     self.assertIs(x.stdout, stdout)