diff options
author | steven.bethard <devnull@localhost> | 2009-06-14 22:34:09 +0000 |
---|---|---|
committer | steven.bethard <devnull@localhost> | 2009-06-14 22:34:09 +0000 |
commit | 8f00f550659f65d9d49cfa227f27091fe7b90490 (patch) | |
tree | e530161fdb854aa553d6ed162a6c7c1bb1740073 /test | |
parent | d77688d99d8ce50420fe5ac5e0a2df012ef25a55 (diff) | |
download | argparse-8f00f550659f65d9d49cfa227f27091fe7b90490.tar.gz |
Add support for parse_known_args.
Diffstat (limited to 'test')
-rw-r--r-- | test/test_argparse.py | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/test/test_argparse.py b/test/test_argparse.py index a04f840..d5a706b 100644 --- a/test/test_argparse.py +++ b/test/test_argparse.py @@ -3500,11 +3500,35 @@ class TestEncoding(TestCase): # ===================
class TestArgumentError(TestCase):
-
+
def test_argument_error(self):
msg = "my error here"
error = argparse.ArgumentError(None, msg)
self.failUnlessEqual(str(error), msg)
+# ======================
+# parse_known_args tests
+# ======================
+
+class TestParseKnownArgs(TestCase):
+
+ def test_optionals(self):
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--foo')
+ args, extras = parser.parse_known_args('--foo F --bar --baz'.split())
+ self.failUnlessEqual(NS(foo='F'), args)
+ self.failUnlessEqual(['--bar', '--baz'], extras)
+
+ def test_mixed(self):
+ parser = argparse.ArgumentParser()
+ parser.add_argument('-v', nargs='?', const=1, type=int)
+ parser.add_argument('--spam', action='store_false')
+ parser.add_argument('badger')
+
+ argv = ["B", "C", "--foo", "-v", "3", "4"]
+ args, extras = parser.parse_known_args(argv)
+ self.failUnlessEqual(NS(v=3, spam=True, badger="B"), args)
+ self.failUnlessEqual(["C", "--foo", "4"], extras)
+
if __name__ == '__main__':
unittest.main()
|