summaryrefslogtreecommitdiff
path: root/test/test_argparse.py
diff options
context:
space:
mode:
authorsteven.bethard <devnull@localhost>2009-10-24 19:47:15 +0000
committersteven.bethard <devnull@localhost>2009-10-24 19:47:15 +0000
commitc8c0bf920a6a527e6f7ed936260c743871c6a634 (patch)
tree39b29222b428a2199cc555b53c80200f1df74ed8 /test/test_argparse.py
parentc24b8c04f07fc5abbb1d9bc44ea4e0bdc013a631 (diff)
downloadargparse-c8c0bf920a6a527e6f7ed936260c743871c6a634.tar.gz
Allow better custom type error messages using ArgumentTypeError.
Diffstat (limited to 'test/test_argparse.py')
-rw-r--r--test/test_argparse.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/test_argparse.py b/test/test_argparse.py
index 4835b1d..c9ec289 100644
--- a/test/test_argparse.py
+++ b/test/test_argparse.py
@@ -3985,6 +3985,28 @@ class TestArgumentError(TestCase):
error = argparse.ArgumentError(None, msg)
self.failUnlessEqual(str(error), msg)
+# =======================
+# ArgumentTypeError tests
+# =======================
+
+class TestArgumentError(TestCase):
+
+ def test_argument_type_error(self):
+
+ def spam(string):
+ raise argparse.ArgumentTypeError('spam!')
+
+ parser = ErrorRaisingArgumentParser(prog='PROG', add_help=False)
+ parser.add_argument('x', type=spam)
+ try:
+ parser.parse_args(['XXX'])
+ except ArgumentParserError:
+ expected = 'usage: PROG x\nPROG: error: argument x: spam!\n'
+ msg = str(sys.exc_info()[1])
+ self.failUnlessEqual(expected, msg)
+ else:
+ self.fail()
+
# ======================
# parse_known_args tests
# ======================