@@ -410,6 +410,32 @@ def test_WindowsError(self):
410410 self .assertEqual (w .strerror , 'foo' )
411411 self .assertEqual (w .filename , None )
412412 self .assertEqual (w .filename2 , None )
413+ self .assertEqual (str (w ), "[Errno bar] foo" )
414+
415+ # Unexpected number of arguments
416+ w = OSError (0 )
417+ self .assertEqual (w .errno , None )
418+ self .assertEqual (w .winerror , None )
419+ self .assertEqual (w .strerror , None )
420+ self .assertEqual (w .filename , None )
421+ self .assertEqual (w .filename2 , None )
422+ self .assertEqual (str (w ), "0" )
423+
424+ w = OSError ('foo' )
425+ self .assertEqual (w .errno , None )
426+ self .assertEqual (w .winerror , None )
427+ self .assertEqual (w .strerror , None )
428+ self .assertEqual (w .filename , None )
429+ self .assertEqual (w .filename2 , None )
430+ self .assertEqual (str (w ), "foo" )
431+
432+ w = OSError ('a' , 'b' , 'c' , 'd' , 'e' , 'f' )
433+ self .assertEqual (w .errno , None )
434+ self .assertEqual (w .winerror , None )
435+ self .assertEqual (w .strerror , None )
436+ self .assertEqual (w .filename , None )
437+ self .assertEqual (w .filename2 , None )
438+ self .assertEqual (str (w ), "('a', 'b', 'c', 'd', 'e', 'f')" )
413439
414440 @unittest .skipUnless (sys .platform == 'win32' ,
415441 'test specific to Windows' )
@@ -435,6 +461,9 @@ def testAttributes(self):
435461 {'args' : ('foo' , 1 )}),
436462 (SystemExit , ('foo' ,),
437463 {'args' : ('foo' ,), 'code' : 'foo' }),
464+ (OSError , (),
465+ {'args' : (), 'filename' : None , 'filename2' : None ,
466+ 'errno' : None , 'strerror' : None }),
438467 (OSError , ('foo' ,),
439468 {'args' : ('foo' ,), 'filename' : None , 'filename2' : None ,
440469 'errno' : None , 'strerror' : None }),
@@ -456,6 +485,9 @@ def testAttributes(self):
456485 {'args' : (1 , 'strErrorStr' ), 'errno' : 1 ,
457486 'strerror' : 'strErrorStr' ,
458487 'filename' : 'filenameStr' , 'filename2' : None }),
488+ (OSError , ('a' , 'b' , 'c' , 'd' , 'e' , 'f' ),
489+ {'args' : ('a' , 'b' , 'c' , 'd' , 'e' , 'f' ), 'filename' : None , 'filename2' : None ,
490+ 'errno' : None , 'strerror' : None }),
459491 (SyntaxError , (), {'msg' : None , 'text' : None ,
460492 'filename' : None , 'lineno' : None , 'offset' : None ,
461493 'end_offset' : None , 'print_file_and_line' : None }),
0 commit comments