@@ -149,6 +149,18 @@ def test_getopt(self):
149149 ('-a' , '' ), ('--alpha' , '' )])
150150 self .assertEqual (args , ['arg1' , 'arg2' ])
151151
152+ # Allow string for single long argument
153+ opts , args = getopt .getopt (cmdline , 'a::' , 'alpha=?' )
154+ self .assertEqual (opts , [('-a' , '1' ), ('--alpha' , '2' ), ('--alpha' , '' ),
155+ ('-a' , '' ), ('--alpha' , '' )])
156+ self .assertEqual (args , ['arg1' , 'arg2' ])
157+
158+ # Pass everything after -- as args
159+ cmdline = ['-a1' , '--alpha=2' , '--' , '-b' , '--beta=5' ]
160+ opts , args = getopt .getopt (cmdline , 'a:b' , ['alpha=' , 'beta' ])
161+ self .assertEqual (opts , [('-a' , '1' ), ('--alpha' , '2' )])
162+ self .assertEqual (args , ['-b' , '--beta=5' ])
163+
152164 self .assertError (getopt .getopt , cmdline , 'a:b' , ['alpha' , 'beta' ])
153165
154166 def test_gnu_getopt (self ):
@@ -191,6 +203,25 @@ def test_gnu_getopt(self):
191203 self .assertEqual (args , ['arg1' , '-b' , '1' , '--alpha' , '--beta=2' ,
192204 '--beta' , '3' , 'arg2' ])
193205
206+ # Allow string for single long argument
207+ opts , args = getopt .gnu_getopt (cmdline , 'ab:' , 'alpha' )
208+ self .assertEqual (opts , [('-a' , '' )])
209+ self .assertEqual (args , ['arg1' , '-b' , '1' , '--alpha' , '--beta=2' ,
210+ '--beta' , '3' , 'arg2' ])
211+
212+ # Pass everything after -- as args
213+ cmdline = ['-a1' , '--alpha=2' , '--' , '-b' , '--beta=5' ]
214+ opts , args = getopt .gnu_getopt (cmdline , 'a:b' , ['alpha=' , 'beta' ])
215+ self .assertEqual (opts , [('-a' , '1' ), ('--alpha' , '2' )])
216+ self .assertEqual (args , ['-b' , '--beta=5' ])
217+
218+ # In order arguments
219+ cmdline = ["gamma" , "--alpha=3" ]
220+ opts , args = getopt .gnu_getopt (cmdline , '-' , ["alpha=" ])
221+ self .assertEqual (opts , [(None , ['gamma' ]), ('--alpha' , '3' )])
222+ self .assertEqual (args , [])
223+
224+
194225 def test_issue4629 (self ):
195226 longopts , shortopts = getopt .getopt (['--help=' ], '' , ['help=' ])
196227 self .assertEqual (longopts , [('--help' , '' )])
0 commit comments