mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Issue #15229: An OSError subclass whose __init__ doesn't call back
OSError.__init__ could produce incomplete instances, leading to crashes when calling str() on them.
This commit is contained in:
parent
4c99071c9b
commit
f87289bb58
3 changed files with 19 additions and 0 deletions
|
@ -29,6 +29,10 @@ class SubOSErrorCombinedInitFirst(SubOSErrorWithInit, SubOSErrorWithNew):
|
|||
class SubOSErrorCombinedNewFirst(SubOSErrorWithNew, SubOSErrorWithInit):
|
||||
pass
|
||||
|
||||
class SubOSErrorWithStandaloneInit(OSError):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
|
||||
class HierarchyTest(unittest.TestCase):
|
||||
|
||||
|
@ -193,6 +197,12 @@ class ExplicitSubclassingTest(unittest.TestCase):
|
|||
self.assertEqual(e.baz, "baz")
|
||||
self.assertEqual(e.args, ("some message",))
|
||||
|
||||
def test_init_standalone(self):
|
||||
# __init__ doesn't propagate to OSError.__init__ (see issue #15229)
|
||||
e = SubOSErrorWithStandaloneInit()
|
||||
self.assertEqual(e.args, ())
|
||||
self.assertEqual(str(e), '')
|
||||
|
||||
|
||||
def test_main():
|
||||
support.run_unittest(__name__)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue