summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorsteven.bethard <devnull@localhost>2009-06-14 22:34:09 +0000
committersteven.bethard <devnull@localhost>2009-06-14 22:34:09 +0000
commit8f00f550659f65d9d49cfa227f27091fe7b90490 (patch)
treee530161fdb854aa553d6ed162a6c7c1bb1740073 /test
parentd77688d99d8ce50420fe5ac5e0a2df012ef25a55 (diff)
downloadargparse-8f00f550659f65d9d49cfa227f27091fe7b90490.tar.gz
Add support for parse_known_args.
Diffstat (limited to 'test')
-rw-r--r--test/test_argparse.py26
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()