[Python-checkins] r83118 - in python/branches/release31-maint: Lib/getopt.py Lib/test/test_getopt.py Misc/NEWS

victor.stinner python-checkins at python.org
Sat Jul 24 03:11:58 CEST 2010


Author: victor.stinner
Date: Sat Jul 24 03:11:58 2010
New Revision: 83118

Log:
Merged revisions 83116 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r83116 | victor.stinner | 2010-07-24 02:49:20 +0200 (sam., 24 juil. 2010) | 4 lines
  
  Issue #4629: getopt raises an error if an argument ends with = whereas getopt
  doesn't except a value (eg. --help= is rejected if getopt uses ['help='] long
  options).
........


Modified:
   python/branches/release31-maint/   (props changed)
   python/branches/release31-maint/Lib/getopt.py
   python/branches/release31-maint/Lib/test/test_getopt.py
   python/branches/release31-maint/Misc/NEWS

Modified: python/branches/release31-maint/Lib/getopt.py
==============================================================================
--- python/branches/release31-maint/Lib/getopt.py	(original)
+++ python/branches/release31-maint/Lib/getopt.py	Sat Jul 24 03:11:58 2010
@@ -156,7 +156,7 @@
             if not args:
                 raise GetoptError('option --%s requires argument' % opt, opt)
             optarg, args = args[0], args[1:]
-    elif optarg:
+    elif optarg is not None:
         raise GetoptError('option --%s must not have an argument' % opt, opt)
     opts.append(('--' + opt, optarg or ''))
     return opts, args

Modified: python/branches/release31-maint/Lib/test/test_getopt.py
==============================================================================
--- python/branches/release31-maint/Lib/test/test_getopt.py	(original)
+++ python/branches/release31-maint/Lib/test/test_getopt.py	Sat Jul 24 03:11:58 2010
@@ -174,6 +174,12 @@
         m = types.ModuleType("libreftest", s)
         run_doctest(m, verbose)
 
+    def test_issue4629(self):
+        longopts, shortopts = getopt.getopt(['--help='], '', ['help='])
+        self.assertEquals(longopts, [('--help', '')])
+        longopts, shortopts = getopt.getopt(['--help=x'], '', ['help='])
+        self.assertEquals(longopts, [('--help', 'x')])
+        self.assertRaises(getopt.GetoptError, getopt.getopt, ['--help='], '', ['help'])
 
 def test_main():
     run_unittest(GetoptTests)

Modified: python/branches/release31-maint/Misc/NEWS
==============================================================================
--- python/branches/release31-maint/Misc/NEWS	(original)
+++ python/branches/release31-maint/Misc/NEWS	Sat Jul 24 03:11:58 2010
@@ -78,6 +78,10 @@
 Library
 -------
 
+- Issue #4629: getopt raises an error if an argument ends with = whereas getopt
+  doesn't except a value (eg. --help= is rejected if getopt uses ['help='] long
+  options).
+
 - Issue #7895: platform.mac_ver() no longer crashes after calling os.fork()
 
 - Issue #9323: Fixed a bug in trace.py that resulted in loosing the


More information about the Python-checkins mailing list