@@ -4831,7 +4831,7 @@ def test_nargs_None_metavar_length0(self):
4831
4831
self .do_test_exception (nargs = None , metavar = tuple ())
4832
4832
4833
4833
def test_nargs_None_metavar_length1 (self ):
4834
- self .do_test_no_exception (nargs = None , metavar = ("1" ))
4834
+ self .do_test_no_exception (nargs = None , metavar = ("1" , ))
4835
4835
4836
4836
def test_nargs_None_metavar_length2 (self ):
4837
4837
self .do_test_exception (nargs = None , metavar = ("1" , "2" ))
@@ -4848,7 +4848,7 @@ def test_nargs_optional_metavar_length0(self):
4848
4848
self .do_test_exception (nargs = "?" , metavar = tuple ())
4849
4849
4850
4850
def test_nargs_optional_metavar_length1 (self ):
4851
- self .do_test_no_exception (nargs = "?" , metavar = ("1" ))
4851
+ self .do_test_no_exception (nargs = "?" , metavar = ("1" , ))
4852
4852
4853
4853
def test_nargs_optional_metavar_length2 (self ):
4854
4854
self .do_test_exception (nargs = "?" , metavar = ("1" , "2" ))
@@ -4865,7 +4865,7 @@ def test_nargs_zeroormore_metavar_length0(self):
4865
4865
self .do_test_exception (nargs = "*" , metavar = tuple ())
4866
4866
4867
4867
def test_nargs_zeroormore_metavar_length1 (self ):
4868
- self .do_test_no_exception (nargs = "*" , metavar = ("1" ))
4868
+ self .do_test_exception (nargs = "*" , metavar = ("1" , ))
4869
4869
4870
4870
def test_nargs_zeroormore_metavar_length2 (self ):
4871
4871
self .do_test_no_exception (nargs = "*" , metavar = ("1" , "2" ))
@@ -4882,7 +4882,7 @@ def test_nargs_oneormore_metavar_length0(self):
4882
4882
self .do_test_exception (nargs = "+" , metavar = tuple ())
4883
4883
4884
4884
def test_nargs_oneormore_metavar_length1 (self ):
4885
- self .do_test_no_exception (nargs = "+" , metavar = ("1" ))
4885
+ self .do_test_exception (nargs = "+" , metavar = ("1" , ))
4886
4886
4887
4887
def test_nargs_oneormore_metavar_length2 (self ):
4888
4888
self .do_test_no_exception (nargs = "+" , metavar = ("1" , "2" ))
@@ -4899,7 +4899,7 @@ def test_nargs_remainder_metavar_length0(self):
4899
4899
self .do_test_no_exception (nargs = "..." , metavar = tuple ())
4900
4900
4901
4901
def test_nargs_remainder_metavar_length1 (self ):
4902
- self .do_test_no_exception (nargs = "..." , metavar = ("1" ))
4902
+ self .do_test_no_exception (nargs = "..." , metavar = ("1" , ))
4903
4903
4904
4904
def test_nargs_remainder_metavar_length2 (self ):
4905
4905
self .do_test_no_exception (nargs = "..." , metavar = ("1" , "2" ))
@@ -4916,7 +4916,7 @@ def test_nargs_parser_metavar_length0(self):
4916
4916
self .do_test_exception (nargs = "A..." , metavar = tuple ())
4917
4917
4918
4918
def test_nargs_parser_metavar_length1 (self ):
4919
- self .do_test_no_exception (nargs = "A..." , metavar = ("1" ))
4919
+ self .do_test_no_exception (nargs = "A..." , metavar = ("1" , ))
4920
4920
4921
4921
def test_nargs_parser_metavar_length2 (self ):
4922
4922
self .do_test_exception (nargs = "A..." , metavar = ("1" , "2" ))
@@ -4933,7 +4933,7 @@ def test_nargs_1_metavar_length0(self):
4933
4933
self .do_test_exception (nargs = 1 , metavar = tuple ())
4934
4934
4935
4935
def test_nargs_1_metavar_length1 (self ):
4936
- self .do_test_no_exception (nargs = 1 , metavar = ("1" ))
4936
+ self .do_test_no_exception (nargs = 1 , metavar = ("1" , ))
4937
4937
4938
4938
def test_nargs_1_metavar_length2 (self ):
4939
4939
self .do_test_exception (nargs = 1 , metavar = ("1" , "2" ))
@@ -4950,7 +4950,7 @@ def test_nargs_2_metavar_length0(self):
4950
4950
self .do_test_exception (nargs = 2 , metavar = tuple ())
4951
4951
4952
4952
def test_nargs_2_metavar_length1 (self ):
4953
- self .do_test_no_exception (nargs = 2 , metavar = ("1" ))
4953
+ self .do_test_exception (nargs = 2 , metavar = ("1" , ))
4954
4954
4955
4955
def test_nargs_2_metavar_length2 (self ):
4956
4956
self .do_test_no_exception (nargs = 2 , metavar = ("1" , "2" ))
@@ -4967,7 +4967,7 @@ def test_nargs_3_metavar_length0(self):
4967
4967
self .do_test_exception (nargs = 3 , metavar = tuple ())
4968
4968
4969
4969
def test_nargs_3_metavar_length1 (self ):
4970
- self .do_test_no_exception (nargs = 3 , metavar = ("1" ))
4970
+ self .do_test_exception (nargs = 3 , metavar = ("1" , ))
4971
4971
4972
4972
def test_nargs_3_metavar_length2 (self ):
4973
4973
self .do_test_exception (nargs = 3 , metavar = ("1" , "2" ))
@@ -4994,6 +4994,30 @@ def test_all_exports_everything_but_modules(self):
4994
4994
]
4995
4995
self .assertEqual (sorted (items ), sorted (argparse .__all__ ))
4996
4996
4997
+
4998
+ class TestWrappingMetavar (TestCase ):
4999
+
5000
+ def setUp (self ):
5001
+ self .parser = ErrorRaisingArgumentParser (
5002
+ 'this_is_spammy_prog_with_a_long_name_sorry_about_the_name'
5003
+ )
5004
+ # this metavar was triggering library assertion errors due to usage
5005
+ # message formatting incorrectly splitting on the ] chars within
5006
+ metavar = '<http[s]://example:1234>'
5007
+ self .parser .add_argument ('--proxy' , metavar = metavar )
5008
+
5009
+ def test_help_with_metavar (self ):
5010
+ help_text = self .parser .format_help ()
5011
+ self .assertEqual (help_text , textwrap .dedent ('''\
5012
+ usage: this_is_spammy_prog_with_a_long_name_sorry_about_the_name
5013
+ [-h] [--proxy <http[s]://example:1234>]
5014
+
5015
+ optional arguments:
5016
+ -h, --help show this help message and exit
5017
+ --proxy <http[s]://example:1234>
5018
+ ''' ))
5019
+
5020
+
4997
5021
def test_main ():
4998
5022
support .run_unittest (__name__ )
4999
5023
# Remove global references to avoid looking like we have refleaks.
0 commit comments