@@ -370,12 +370,24 @@ def test_del___main__(self):
370370 print ("del sys.modules['__main__']" , file = script )
371371 assert_python_ok (filename )
372372
373-
374373 def test_unknown_options (self ):
375- rc , out , err = assert_python_failure ('-z' , __cleanenv = True )
376- self .assertIn (b'Unknown option' , err )
374+ rc , out , err = assert_python_failure ('-E' , '-z' )
375+ self .assertIn (b'Unknown option: -z' , err )
376+ self .assertEqual (err .splitlines ().count (b'Unknown option: -z' ), 1 )
377+ self .assertEqual (b'' , out )
378+ # Add "without='-E'" to prevent _assert_python to append -E
379+ # to env_vars and change the output of stderr
380+ rc , out , err = assert_python_failure ('-z' , without = '-E' )
381+ self .assertIn (b'Unknown option: -z' , err )
377382 self .assertEqual (err .splitlines ().count (b'Unknown option: -z' ), 1 )
378383 self .assertEqual (b'' , out )
384+ rc , out , err = assert_python_failure ('-a' , '-z' , without = '-E' )
385+ self .assertIn (b'Unknown option: -a' , err )
386+ # only the first unknown option is reported
387+ self .assertNotIn (b'Unknown option: -z' , err )
388+ self .assertEqual (err .splitlines ().count (b'Unknown option: -a' ), 1 )
389+ self .assertEqual (b'' , out )
390+
379391
380392def test_main ():
381393 test .support .run_unittest (CmdLineTest )
0 commit comments