Example #1
0
 def setUp(self):
     self.parser = OptionParser("NAMES...", description="Option unit test")
     self.parser.add_option("-t",
                            "--test",
                            help="Unit test option",
                            action="store_false",
                            dest="test",
                            default=True)
     self.parser.add_option("--g-fatal-warnings",
                            action="store_true",
                            dest="fatal_warnings",
                            help="dummy"),
def main():
    ext_path = GLib.path_get_dirname(os.path.realpath(__file__))

    md_file = Gio.file_new_for_path(GLib.build_filenamev([ ext_path, MD_NAME ]))
    [ values, _, err_str ] = read_json_file(md_file)

    # look for an existing locale directory
    locale_dirs = [ GLib.build_filenamev([ ext_path, LOCALE_SUBDIR ]) ]
    if err_str != None:
        print(err_str)
    else:
        if values['system-locale-dir'] != None:
            locale_dirs += [ values['system-locale-dir'] ]

    if values['gettext-domain'] != None:
        for i in range(len(locale_dirs)):
            directory = Gio.file_new_for_path(locale_dirs[i])

            if (directory.query_file_type(Gio.FileQueryInfoFlags.NONE, None) ==
                    Gio.FileType.DIRECTORY):
                gettext.textdomain(values['gettext-domain'])
                gettext.bindtextdomain(values['gettext-domain'],
                    directory.get_path())
                break

    parser = OptionParser(g(ERR_USAGE),
        description = "",
        option_list = [
            make_option('--file', '-f',
                type = 'filename',
                action = 'store',
                dest = 'filename',
                help=g(ERR_FILE_HELP)
            )
        ])
    try:
        parser.parse_args()
    except Exception as e:
        sys.stderr.write("%s\n" % g(ERR_WRONG_ARGS))
        return

    if parser.values.filename == None:
        filename = GLib.build_filenamev(DEFAULT_OPTION_FILE_PARTS)
        sys.stderr.write(g(WARN_DEF_OPT_FILE) % filename)
    else:
        filename = parser.values.filename

    configurator = Configurator(filename)
    configurator.run(None)
Example #3
0
 def setUp(self):
     self.parser = OptionParser("NAMES...",
                                  description="Option unit test")
     self.parser.add_option("-t", "--test", help="Unit test option",
                       action="store_false", dest="test", default=True)
     self.parser.add_option("--g-fatal-warnings",
                            action="store_true",
                            dest="fatal_warnings",
                            help="dummy"),
Example #4
0
class TestOption(unittest.TestCase):
    EXCEPTION_MESSAGE = "This callback fails"

    def setUp(self):
        self.parser = OptionParser("NAMES...", description="Option unit test")
        self.parser.add_option("-t",
                               "--test",
                               help="Unit test option",
                               action="store_false",
                               dest="test",
                               default=True)
        self.parser.add_option("--g-fatal-warnings",
                               action="store_true",
                               dest="fatal_warnings",
                               help="dummy"),

    def _create_group(self):
        def option_callback(option, opt, value, parser):
            raise Exception(self.EXCEPTION_MESSAGE)

        group = OptionGroup("unittest",
                            "Unit test options",
                            "Show all unittest options",
                            option_list=[
                                make_option("-f",
                                            "-u",
                                            "--file",
                                            "--unit-file",
                                            type="filename",
                                            dest="unit_file",
                                            help="Unit test option"),
                                make_option("--test-integer",
                                            type="int",
                                            dest="test_integer",
                                            help="Unit integer option"),
                                make_option("--callback-failure-test",
                                            action="callback",
                                            callback=option_callback,
                                            dest="test_integer",
                                            help="Unit integer option"),
                            ])
        group.add_option("-t",
                         "--test",
                         action="store_false",
                         dest="test",
                         default=True,
                         help="Unit test option")
        self.parser.add_option_group(group)
        return group

    def testParseArgs(self):
        options, args = self.parser.parse_args(["test_option.py"])
        self.failIf(args)

        options, args = self.parser.parse_args(["test_option.py", "foo"])
        self.assertEquals(args, ["foo"])

        options, args = self.parser.parse_args(
            ["test_option.py", "foo", "bar"])
        self.assertEquals(args, ["foo", "bar"])

    def testParseArgsDoubleDash(self):
        options, args = self.parser.parse_args(
            ["test_option.py", "--", "-xxx"])
        #self.assertEquals(args, ["-xxx"])

    def testParseArgs(self):
        options, args = self.parser.parse_args()

    def testParseArgsGroup(self):
        group = self._create_group()

        options, args = self.parser.parse_args(
            ["test_option.py", "--test", "-f", "test"])

        self.failIf(options.test)
        self.assertEqual(options.unit_file, "test")

        self.failUnless(group.values.test)
        self.failIf(self.parser.values.test)
        self.assertEqual(group.values.unit_file, "test")
        self.failIf(args)

    def testOptionValueError(self):
        self._create_group()
        self.assertRaises(OptionValueError, self.parser.parse_args,
                          ["test_option.py", "--test-integer=text"])

    def testBadOptionError(self):
        self.assertRaises(BadOptionError, self.parser.parse_args,
                          ["test_option.py", "--unknwon-option"])

    def testOptionGroupConstructor(self):
        self.assertRaises(TypeError, OptionGroup)

    def testStandardError(self):
        self._create_group()
        sio = StringIO()
        old_stderr = sys.stderr
        sys.stderr = sio
        try:
            self.parser.parse_args(
                ["test_option.py", "--callback-failure-test"])
        finally:
            sys.stderr = old_stderr

        assert (sio.getvalue().split('\n')[-2] == "Exception: " +
                self.EXCEPTION_MESSAGE)
Example #5
0
class TestOption(unittest.TestCase):
    EXCEPTION_MESSAGE = "This callback fails"

    def setUp(self):
        self.parser = OptionParser("NAMES...",
                                     description="Option unit test")
        self.parser.add_option("-t", "--test", help="Unit test option",
                          action="store_false", dest="test", default=True)
        self.parser.add_option("--g-fatal-warnings",
                               action="store_true",
                               dest="fatal_warnings",
                               help="dummy"),

    def _create_group(self):
        def option_callback(option, opt, value, parser):
            raise Exception(self.EXCEPTION_MESSAGE)

        group = OptionGroup(
            "unittest", "Unit test options", "Show all unittest options",
            option_list = [
                make_option("-f", "-u", "--file", "--unit-file",
                                   type="filename",
                                   dest="unit_file",
                                   help="Unit test option"),
                make_option("--test-integer",
                                   type="int",
                                   dest="test_integer",
                                   help="Unit integer option"),
                make_option("--callback-failure-test",
                                   action="callback",
                                   callback=option_callback,
                                   dest="test_integer",
                                   help="Unit integer option"),
            ])
        group.add_option("-t", "--test",
                         action="store_false",
                         dest="test",
                         default=True,
                         help="Unit test option")
        self.parser.add_option_group(group)
        return group

    def testParseArgs(self):
        options, args = self.parser.parse_args(
            ["test_option.py"])
        self.failIf(args)

        options, args = self.parser.parse_args(
            ["test_option.py", "foo"])
        self.assertEquals(args, ["foo"])

        options, args = self.parser.parse_args(
            ["test_option.py", "foo", "bar"])
        self.assertEquals(args, ["foo", "bar"])

    def testParseArgsDoubleDash(self):
        options, args = self.parser.parse_args(
            ["test_option.py", "--", "-xxx"])
        #self.assertEquals(args, ["-xxx"])

    def testParseArgs(self):
        options, args = self.parser.parse_args()

    def testParseArgsGroup(self):
        group = self._create_group()

        options, args = self.parser.parse_args(
            ["test_option.py", "--test", "-f", "test"])

        self.failIf(options.test)
        self.assertEqual(options.unit_file, "test")

        self.failUnless(group.values.test)
        self.failIf(self.parser.values.test)
        self.assertEqual(group.values.unit_file, "test")
        self.failIf(args)

    def testOptionValueError(self):
        self._create_group()
        self.assertRaises(OptionValueError, self.parser.parse_args,
                          ["test_option.py", "--test-integer=text"])

    def testBadOptionError(self):
        self.assertRaises(BadOptionError,
                          self.parser.parse_args,
                          ["test_option.py", "--unknwon-option"])

    def testOptionGroupConstructor(self):
        self.assertRaises(TypeError, OptionGroup)

    def testStandardError(self):
        self._create_group()
        sio = StringIO()
        old_stderr = sys.stderr
        sys.stderr = sio
        try:
            self.parser.parse_args(
                ["test_option.py", "--callback-failure-test"])
        finally:
            sys.stderr = old_stderr

        assert (sio.getvalue().split('\n')[-2] ==
                "Exception: " + self.EXCEPTION_MESSAGE)