diff options
author | Johan Dahlin <johan@gnome.org> | 2007-11-06 08:55:56 +0000 |
---|---|---|
committer | Johan Dahlin <johan@src.gnome.org> | 2007-11-06 08:55:56 +0000 |
commit | 825d8de9a85f60a4d747e5cf4531c0ac761cfa13 (patch) | |
tree | 1ed13dd58a05ccc7fa8aeea36156349a26e86d06 /tests/test_option.py | |
parent | 1b8078ba1c1c027a8c7f3b0e1a32dd03c6e26857 (diff) | |
download | pygobject-825d8de9a85f60a4d747e5cf4531c0ac761cfa13.tar.gz pygobject-825d8de9a85f60a4d747e5cf4531c0ac761cfa13.tar.xz pygobject-825d8de9a85f60a4d747e5cf4531c0ac761cfa13.zip |
Merge in values from all groups to the global option group. Slice up args
2007-11-06 Johan Dahlin <johan@gnome.org>
* gobject/option.py (OptionParser.parse_args): Merge in values
from all groups to the global option group. Slice up args
so it doesn't return too much.
* tests/test_option.py: Refactor to be unittesty,
Add new tests to test what options returns.
svn path=/trunk/; revision=717
Diffstat (limited to 'tests/test_option.py')
-rw-r--r-- | tests/test_option.py | 89 |
1 files changed, 55 insertions, 34 deletions
diff --git a/tests/test_option.py b/tests/test_option.py index 1feb13e..2301553 100644 --- a/tests/test_option.py +++ b/tests/test_option.py @@ -2,15 +2,23 @@ import unittest import sys - from StringIO import StringIO -from common import gobject + from gobject import option +from common import gobject + + class TestOption(unittest.TestCase): EXCEPTION_MESSAGE = "This callback fails" - def setup_group(self): + def setUp(self): + self.parser = option.OptionParser("NAMES...", + description="Option unit test") + self.parser.add_option("-t", "--test", help="Unit test option", + action="store_false", dest="test", default=True) + + def _create_group(self): def option_callback(option, opt, value, parser): raise StandardError(self.EXCEPTION_MESSAGE) @@ -36,49 +44,62 @@ class TestOption(unittest.TestCase): dest="test", default=True, help="Unit test option") + self.parser.add_option_group(group) return group - def setup_parser(self): - parser = option.OptionParser("NAMES...", - description="Option unit test") - parser.add_option("-t", "--test", help="Unit test option", - action="store_false", dest="test", default=True) - return parser + def testParseArgs(self): + options, args = self.parser.parse_args( + ["test_option.py"]) + self.failIf(args) - def testOption(self): - parser = self.setup_parser() - group = self.setup_group() - parser.add_option_group(group) + options, args = self.parser.parse_args( + ["test_option.py", "foo"]) + self.assertEquals(args, ["foo"]) - parser.parse_args(["test_option.py", "--test", "-f", "test"]) - assert group.values.test - assert not parser.values.test - assert group.values.unit_file == "test" + options, args = self.parser.parse_args( + ["test_option.py", "foo", "bar"]) + self.assertEquals(args, ["foo", "bar"]) - try: - parser.parse_args(["test_option.py", "--test-integer=text"]) - except option.OptionValueError: - pass - else: - assert False + def testParseArgsDoubleDash(self): + options, args = self.parser.parse_args( + ["test_option.py", "--", "-xxx"]) + #self.assertEquals(args, ["-xxx"]) + 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.assertRaises(option.OptionValueError, self.parser.parse_args, + ["test_option.py", "--test-integer=text"]) + + def testBadOptionError(self): + self.assertRaises(option.BadOptionError, + self.parser.parse_args, + ["test_option.py", "--unknwon-option"]) + + def testOptionGroupConstructor(self): + self.assertRaises(TypeError, option.OptionGroup) + + def testStandardError(self): sio = StringIO() old_stderr = sys.stderr sys.stderr = sio try: - parser.parse_args(["test_option.py", "--callback-failure-test"]) + self.parser.parse_args( + ["test_option.py", "--callback-failure-test"]) finally: sys.stderr = old_stderr assert (sio.getvalue().split('\n')[-2] == "StandardError: " + self.EXCEPTION_MESSAGE) - try: - parser.parse_args(["test_option.py", "--unknwon-option"]) - except option.BadOptionError: - pass - else: - assert False - - def testBadConstructor(self): - self.assertRaises(TypeError, option.OptionGroup) - |