@@ -376,12 +376,24 @@ def test_del___main__(self):
376376 print ("del sys.modules['__main__']" , file = script )
377377 assert_python_ok (filename )
378378
379-
380379 def test_unknown_options (self ):
381- rc , out , err = assert_python_failure ('-z' , __cleanenv = True )
382- self .assertIn (b'Unknown option' , err )
380+ rc , out , err = assert_python_failure ('-E' , '-z' )
381+ self .assertIn (b'Unknown option: -z' , err )
382+ self .assertEqual (err .splitlines ().count (b'Unknown option: -z' ), 1 )
383+ self .assertEqual (b'' , out )
384+ # Add "without='-E'" to prevent _assert_python to append -E
385+ # to env_vars and change the output of stderr
386+ rc , out , err = assert_python_failure ('-z' , without = '-E' )
387+ self .assertIn (b'Unknown option: -z' , err )
383388 self .assertEqual (err .splitlines ().count (b'Unknown option: -z' ), 1 )
384389 self .assertEqual (b'' , out )
390+ rc , out , err = assert_python_failure ('-a' , '-z' , without = '-E' )
391+ self .assertIn (b'Unknown option: -a' , err )
392+ # only the first unknown option is reported
393+ self .assertNotIn (b'Unknown option: -z' , err )
394+ self .assertEqual (err .splitlines ().count (b'Unknown option: -a' ), 1 )
395+ self .assertEqual (b'' , out )
396+
385397
386398def test_main ():
387399 test .support .run_unittest (CmdLineTest )
0 commit comments