]> granicus.if.org Git - python/commitdiff
Merged revisions 83117 via svnmerge from
authorVictor Stinner <victor.stinner@haypocalc.com>
Sat, 24 Jul 2010 01:12:54 +0000 (01:12 +0000)
committerVictor Stinner <victor.stinner@haypocalc.com>
Sat, 24 Jul 2010 01:12:54 +0000 (01:12 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/release27-maint

................
  r83117 | victor.stinner | 2010-07-24 03:07:52 +0200 (sam., 24 juil. 2010) | 11 lines

  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).
  ........
................

Lib/getopt.py
Lib/test/test_getopt.py
Misc/NEWS

index 04e881ec73d08bfa6b29056bd75155486273c274..f76d3deb680b62ea256bbbe49f93a560b00303ba 100644 (file)
@@ -156,7 +156,7 @@ def do_longs(opts, opt, longopts, args):
             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
index 36d1688b03f6425ddb52e69c477d5c3b2cd0479a..4967388c47ba67c40a911d623f7d7d852d99c976 100644 (file)
@@ -171,6 +171,12 @@ class GetoptTests(unittest.TestCase):
         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)
index 23a52d0ea04f909f2dcd8fc6f9db7d6344f0f4ba..4856c79549059856dd26b82c710462ebe7129c44 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -81,6 +81,10 @@ C-API
 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 #5395: array.fromfile() would raise a spurious EOFError when an