@@ -4955,7 +4955,7 @@ def test_nargs_None_metavar_length0(self):
4955
4955
self .do_test_exception (nargs = None , metavar = tuple ())
4956
4956
4957
4957
def test_nargs_None_metavar_length1 (self ):
4958
- self .do_test_no_exception (nargs = None , metavar = ("1" ))
4958
+ self .do_test_no_exception (nargs = None , metavar = ("1" , ))
4959
4959
4960
4960
def test_nargs_None_metavar_length2 (self ):
4961
4961
self .do_test_exception (nargs = None , metavar = ("1" , "2" ))
@@ -4972,7 +4972,7 @@ def test_nargs_optional_metavar_length0(self):
4972
4972
self .do_test_exception (nargs = "?" , metavar = tuple ())
4973
4973
4974
4974
def test_nargs_optional_metavar_length1 (self ):
4975
- self .do_test_no_exception (nargs = "?" , metavar = ("1" ))
4975
+ self .do_test_no_exception (nargs = "?" , metavar = ("1" , ))
4976
4976
4977
4977
def test_nargs_optional_metavar_length2 (self ):
4978
4978
self .do_test_exception (nargs = "?" , metavar = ("1" , "2" ))
@@ -4989,7 +4989,7 @@ def test_nargs_zeroormore_metavar_length0(self):
4989
4989
self .do_test_exception (nargs = "*" , metavar = tuple ())
4990
4990
4991
4991
def test_nargs_zeroormore_metavar_length1 (self ):
4992
- self .do_test_no_exception (nargs = "*" , metavar = ("1" ))
4992
+ self .do_test_exception (nargs = "*" , metavar = ("1" , ))
4993
4993
4994
4994
def test_nargs_zeroormore_metavar_length2 (self ):
4995
4995
self .do_test_no_exception (nargs = "*" , metavar = ("1" , "2" ))
@@ -5006,7 +5006,7 @@ def test_nargs_oneormore_metavar_length0(self):
5006
5006
self .do_test_exception (nargs = "+" , metavar = tuple ())
5007
5007
5008
5008
def test_nargs_oneormore_metavar_length1 (self ):
5009
- self .do_test_no_exception (nargs = "+" , metavar = ("1" ))
5009
+ self .do_test_exception (nargs = "+" , metavar = ("1" , ))
5010
5010
5011
5011
def test_nargs_oneormore_metavar_length2 (self ):
5012
5012
self .do_test_no_exception (nargs = "+" , metavar = ("1" , "2" ))
@@ -5023,7 +5023,7 @@ def test_nargs_remainder_metavar_length0(self):
5023
5023
self .do_test_no_exception (nargs = "..." , metavar = tuple ())
5024
5024
5025
5025
def test_nargs_remainder_metavar_length1 (self ):
5026
- self .do_test_no_exception (nargs = "..." , metavar = ("1" ))
5026
+ self .do_test_no_exception (nargs = "..." , metavar = ("1" , ))
5027
5027
5028
5028
def test_nargs_remainder_metavar_length2 (self ):
5029
5029
self .do_test_no_exception (nargs = "..." , metavar = ("1" , "2" ))
@@ -5040,7 +5040,7 @@ def test_nargs_parser_metavar_length0(self):
5040
5040
self .do_test_exception (nargs = "A..." , metavar = tuple ())
5041
5041
5042
5042
def test_nargs_parser_metavar_length1 (self ):
5043
- self .do_test_no_exception (nargs = "A..." , metavar = ("1" ))
5043
+ self .do_test_no_exception (nargs = "A..." , metavar = ("1" , ))
5044
5044
5045
5045
def test_nargs_parser_metavar_length2 (self ):
5046
5046
self .do_test_exception (nargs = "A..." , metavar = ("1" , "2" ))
@@ -5057,7 +5057,7 @@ def test_nargs_1_metavar_length0(self):
5057
5057
self .do_test_exception (nargs = 1 , metavar = tuple ())
5058
5058
5059
5059
def test_nargs_1_metavar_length1 (self ):
5060
- self .do_test_no_exception (nargs = 1 , metavar = ("1" ))
5060
+ self .do_test_no_exception (nargs = 1 , metavar = ("1" , ))
5061
5061
5062
5062
def test_nargs_1_metavar_length2 (self ):
5063
5063
self .do_test_exception (nargs = 1 , metavar = ("1" , "2" ))
@@ -5074,7 +5074,7 @@ def test_nargs_2_metavar_length0(self):
5074
5074
self .do_test_exception (nargs = 2 , metavar = tuple ())
5075
5075
5076
5076
def test_nargs_2_metavar_length1 (self ):
5077
- self .do_test_no_exception (nargs = 2 , metavar = ("1" ))
5077
+ self .do_test_exception (nargs = 2 , metavar = ("1" , ))
5078
5078
5079
5079
def test_nargs_2_metavar_length2 (self ):
5080
5080
self .do_test_no_exception (nargs = 2 , metavar = ("1" , "2" ))
@@ -5091,7 +5091,7 @@ def test_nargs_3_metavar_length0(self):
5091
5091
self .do_test_exception (nargs = 3 , metavar = tuple ())
5092
5092
5093
5093
def test_nargs_3_metavar_length1 (self ):
5094
- self .do_test_no_exception (nargs = 3 , metavar = ("1" ))
5094
+ self .do_test_exception (nargs = 3 , metavar = ("1" , ))
5095
5095
5096
5096
def test_nargs_3_metavar_length2 (self ):
5097
5097
self .do_test_exception (nargs = 3 , metavar = ("1" , "2" ))
@@ -5118,6 +5118,30 @@ def test_all_exports_everything_but_modules(self):
5118
5118
]
5119
5119
self .assertEqual (sorted (items ), sorted (argparse .__all__ ))
5120
5120
5121
+
5122
+ class TestWrappingMetavar (TestCase ):
5123
+
5124
+ def setUp (self ):
5125
+ self .parser = ErrorRaisingArgumentParser (
5126
+ 'this_is_spammy_prog_with_a_long_name_sorry_about_the_name'
5127
+ )
5128
+ # this metavar was triggering library assertion errors due to usage
5129
+ # message formatting incorrectly splitting on the ] chars within
5130
+ metavar = '<http[s]://example:1234>'
5131
+ self .parser .add_argument ('--proxy' , metavar = metavar )
5132
+
5133
+ def test_help_with_metavar (self ):
5134
+ help_text = self .parser .format_help ()
5135
+ self .assertEqual (help_text , textwrap .dedent ('''\
5136
+ usage: this_is_spammy_prog_with_a_long_name_sorry_about_the_name
5137
+ [-h] [--proxy <http[s]://example:1234>]
5138
+
5139
+ optional arguments:
5140
+ -h, --help show this help message and exit
5141
+ --proxy <http[s]://example:1234>
5142
+ ''' ))
5143
+
5144
+
5121
5145
def test_main ():
5122
5146
support .run_unittest (__name__ )
5123
5147
# Remove global references to avoid looking like we have refleaks.
0 commit comments