@@ -4652,7 +4652,7 @@ def test_nargs_None_metavar_length0(self):
4652
4652
self .do_test_exception (nargs = None , metavar = tuple ())
4653
4653
4654
4654
def test_nargs_None_metavar_length1 (self ):
4655
- self .do_test_no_exception (nargs = None , metavar = ("1" ))
4655
+ self .do_test_no_exception (nargs = None , metavar = ("1" , ))
4656
4656
4657
4657
def test_nargs_None_metavar_length2 (self ):
4658
4658
self .do_test_exception (nargs = None , metavar = ("1" , "2" ))
@@ -4669,7 +4669,7 @@ def test_nargs_optional_metavar_length0(self):
4669
4669
self .do_test_exception (nargs = "?" , metavar = tuple ())
4670
4670
4671
4671
def test_nargs_optional_metavar_length1 (self ):
4672
- self .do_test_no_exception (nargs = "?" , metavar = ("1" ))
4672
+ self .do_test_no_exception (nargs = "?" , metavar = ("1" , ))
4673
4673
4674
4674
def test_nargs_optional_metavar_length2 (self ):
4675
4675
self .do_test_exception (nargs = "?" , metavar = ("1" , "2" ))
@@ -4686,7 +4686,7 @@ def test_nargs_zeroormore_metavar_length0(self):
4686
4686
self .do_test_exception (nargs = "*" , metavar = tuple ())
4687
4687
4688
4688
def test_nargs_zeroormore_metavar_length1 (self ):
4689
- self .do_test_no_exception (nargs = "*" , metavar = ("1" ))
4689
+ self .do_test_exception (nargs = "*" , metavar = ("1" , ))
4690
4690
4691
4691
def test_nargs_zeroormore_metavar_length2 (self ):
4692
4692
self .do_test_no_exception (nargs = "*" , metavar = ("1" , "2" ))
@@ -4703,7 +4703,7 @@ def test_nargs_oneormore_metavar_length0(self):
4703
4703
self .do_test_exception (nargs = "+" , metavar = tuple ())
4704
4704
4705
4705
def test_nargs_oneormore_metavar_length1 (self ):
4706
- self .do_test_no_exception (nargs = "+" , metavar = ("1" ))
4706
+ self .do_test_exception (nargs = "+" , metavar = ("1" , ))
4707
4707
4708
4708
def test_nargs_oneormore_metavar_length2 (self ):
4709
4709
self .do_test_no_exception (nargs = "+" , metavar = ("1" , "2" ))
@@ -4720,7 +4720,7 @@ def test_nargs_remainder_metavar_length0(self):
4720
4720
self .do_test_no_exception (nargs = "..." , metavar = tuple ())
4721
4721
4722
4722
def test_nargs_remainder_metavar_length1 (self ):
4723
- self .do_test_no_exception (nargs = "..." , metavar = ("1" ))
4723
+ self .do_test_no_exception (nargs = "..." , metavar = ("1" , ))
4724
4724
4725
4725
def test_nargs_remainder_metavar_length2 (self ):
4726
4726
self .do_test_no_exception (nargs = "..." , metavar = ("1" , "2" ))
@@ -4737,7 +4737,7 @@ def test_nargs_parser_metavar_length0(self):
4737
4737
self .do_test_exception (nargs = "A..." , metavar = tuple ())
4738
4738
4739
4739
def test_nargs_parser_metavar_length1 (self ):
4740
- self .do_test_no_exception (nargs = "A..." , metavar = ("1" ))
4740
+ self .do_test_no_exception (nargs = "A..." , metavar = ("1" , ))
4741
4741
4742
4742
def test_nargs_parser_metavar_length2 (self ):
4743
4743
self .do_test_exception (nargs = "A..." , metavar = ("1" , "2" ))
@@ -4754,7 +4754,7 @@ def test_nargs_1_metavar_length0(self):
4754
4754
self .do_test_exception (nargs = 1 , metavar = tuple ())
4755
4755
4756
4756
def test_nargs_1_metavar_length1 (self ):
4757
- self .do_test_no_exception (nargs = 1 , metavar = ("1" ))
4757
+ self .do_test_no_exception (nargs = 1 , metavar = ("1" , ))
4758
4758
4759
4759
def test_nargs_1_metavar_length2 (self ):
4760
4760
self .do_test_exception (nargs = 1 , metavar = ("1" , "2" ))
@@ -4771,7 +4771,7 @@ def test_nargs_2_metavar_length0(self):
4771
4771
self .do_test_exception (nargs = 2 , metavar = tuple ())
4772
4772
4773
4773
def test_nargs_2_metavar_length1 (self ):
4774
- self .do_test_no_exception (nargs = 2 , metavar = ("1" ))
4774
+ self .do_test_exception (nargs = 2 , metavar = ("1" , ))
4775
4775
4776
4776
def test_nargs_2_metavar_length2 (self ):
4777
4777
self .do_test_no_exception (nargs = 2 , metavar = ("1" , "2" ))
@@ -4788,7 +4788,7 @@ def test_nargs_3_metavar_length0(self):
4788
4788
self .do_test_exception (nargs = 3 , metavar = tuple ())
4789
4789
4790
4790
def test_nargs_3_metavar_length1 (self ):
4791
- self .do_test_no_exception (nargs = 3 , metavar = ("1" ))
4791
+ self .do_test_exception (nargs = 3 , metavar = ("1" , ))
4792
4792
4793
4793
def test_nargs_3_metavar_length2 (self ):
4794
4794
self .do_test_exception (nargs = 3 , metavar = ("1" , "2" ))
@@ -4815,6 +4815,30 @@ def test_all_exports_everything_but_modules(self):
4815
4815
]
4816
4816
self .assertEqual (sorted (items ), sorted (argparse .__all__ ))
4817
4817
4818
+
4819
+ class TestWrappingMetavar (TestCase ):
4820
+
4821
+ def setUp (self ):
4822
+ self .parser = ErrorRaisingArgumentParser (
4823
+ 'this_is_spammy_prog_with_a_long_name_sorry_about_the_name'
4824
+ )
4825
+ # this metavar was triggering library assertion errors due to usage
4826
+ # message formatting incorrectly splitting on the ] chars within
4827
+ metavar = '<http[s]://example:1234>'
4828
+ self .parser .add_argument ('--proxy' , metavar = metavar )
4829
+
4830
+ def test_help_with_metavar (self ):
4831
+ help_text = self .parser .format_help ()
4832
+ self .assertEqual (help_text , textwrap .dedent ('''\
4833
+ usage: this_is_spammy_prog_with_a_long_name_sorry_about_the_name
4834
+ [-h] [--proxy <http[s]://example:1234>]
4835
+
4836
+ optional arguments:
4837
+ -h, --help show this help message and exit
4838
+ --proxy <http[s]://example:1234>
4839
+ ''' ))
4840
+
4841
+
4818
4842
def test_main ():
4819
4843
# silence warnings about version argument - these are expected
4820
4844
with test_support .check_warnings (
0 commit comments