File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1025,6 +1025,11 @@ def _init_parsing_state (self):
10251025 self .largs = None
10261026 self .values = None
10271027
1028+ def _get_prog_name (self ):
1029+ if self .prog :
1030+ return self .prog
1031+ else :
1032+ return get_prog_name ()
10281033
10291034 # -- Simple modifier methods ---------------------------------------
10301035
@@ -1288,12 +1293,12 @@ def error (self, msg):
12881293 should either exit or raise an exception.
12891294 """
12901295 self .print_usage (sys .stderr )
1291- sys .exit ("%s: error: %s" % (get_prog_name (), msg ))
1296+ sys .exit ("%s: error: %s" % (self . _get_prog_name (), msg ))
12921297
12931298 def get_usage (self ):
12941299 if self .usage :
12951300 return self .formatter .format_usage (
1296- self .usage .replace ("%prog" , get_prog_name ()))
1301+ self .usage .replace ("%prog" , self . _get_prog_name ()))
12971302 else :
12981303 return ""
12991304
@@ -1311,7 +1316,7 @@ def print_usage (self, file=None):
13111316
13121317 def get_version (self ):
13131318 if self .version :
1314- return self .version .replace ("%prog" , get_prog_name ())
1319+ return self .version .replace ("%prog" , self . _get_prog_name ())
13151320 else :
13161321 return ""
13171322
Original file line number Diff line number Diff line change @@ -612,6 +612,22 @@ def test_version(self):
612612 self .assertStdoutEquals (["--version" ], "bar 0.1\n " )
613613 sys .argv [0 ] = oldargv
614614
615+ def test_version_with_prog_keyword (self ):
616+ oldargv = sys .argv [0 ]
617+ sys .argv [0 ] = "./foo/bar"
618+ self .parser = OptionParser (usage = SUPPRESS_USAGE , version = "%prog 0.1" ,
619+ prog = "splat" )
620+ self .assertStdoutEquals (["--version" ], "splat 0.1\n " )
621+ sys .argv [0 ] = oldargv
622+
623+ def test_version_with_prog_attribute (self ):
624+ oldargv = sys .argv [0 ]
625+ sys .argv [0 ] = "./foo/bar"
626+ self .parser = OptionParser (usage = SUPPRESS_USAGE , version = "%prog 0.1" )
627+ self .parser .prog = "splat"
628+ self .assertStdoutEquals (["--version" ], "splat 0.1\n " )
629+ sys .argv [0 ] = oldargv
630+
615631 def test_no_version (self ):
616632 self .parser = OptionParser (usage = SUPPRESS_USAGE )
617633 self .assertParseFail (["--version" ],
You can’t perform that action at this time.
0 commit comments