summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--argparse.py4
-rw-r--r--test/test_argparse.py11
2 files changed, 14 insertions, 1 deletions
diff --git a/argparse.py b/argparse.py
index 8544dd7..449a617 100644
--- a/argparse.py
+++ b/argparse.py
@@ -589,7 +589,9 @@ class RawTextHelpFormatter(RawDescriptionHelpFormatter):
# =====================
def _get_action_name(argument):
- if argument.option_strings:
+ if argument is None:
+ return None
+ elif argument.option_strings:
return '/'.join(argument.option_strings)
elif argument.metavar not in (None, SUPPRESS):
return argument.metavar
diff --git a/test/test_argparse.py b/test/test_argparse.py
index 6609e3c..a04f840 100644
--- a/test/test_argparse.py
+++ b/test/test_argparse.py
@@ -3495,5 +3495,16 @@ class TestEncoding(TestCase):
def test_test_argparse_module_encoding(self):
text = codecs.open(__file__, 'r', 'utf8').read()
+# ===================
+# ArgumentError tests
+# ===================
+
+class TestArgumentError(TestCase):
+
+ def test_argument_error(self):
+ msg = "my error here"
+ error = argparse.ArgumentError(None, msg)
+ self.failUnlessEqual(str(error), msg)
+
if __name__ == '__main__':
unittest.main()