From 825d8de9a85f60a4d747e5cf4531c0ac761cfa13 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Tue, 6 Nov 2007 08:55:56 +0000 Subject: Merge in values from all groups to the global option group. Slice up args 2007-11-06 Johan Dahlin * 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 --- tests/test_option.py | 89 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 34 deletions(-) (limited to 'tests') 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) - -- cgit