mirror of
https://github.com/python/cpython.git
synced 2024-11-25 19:03:49 +08:00
Added regression test for SF tracker bug #403871: AttributeError in
ZipFile.__del__() when there was an IOError opening the underlying file in ZipFile.__init__(). This is an odd test: since the exception is in the __del__() method, it is not propogated. This test will trigger it but regrtest.py does not detect the failure (not sure why); we are dependent on it actually being noticed by a user to get a new bug report if it ever fails. ;-( On the other hand, this makes sure that code gets exercised, so a failure could be noticed!
This commit is contained in:
parent
90eac285c8
commit
6e7e485d5d
@ -1,4 +1,5 @@
|
||||
import zipfile, os
|
||||
from test_support import TestFailed
|
||||
|
||||
srcname = "junk9630.tmp"
|
||||
zipname = "junk9708.tmp"
|
||||
@ -23,3 +24,21 @@ finally:
|
||||
os.unlink(srcname)
|
||||
if os.path.isfile(zipname):
|
||||
os.unlink(zipname)
|
||||
|
||||
# make sure we don't raise an AttributeError when a partially-constructed
|
||||
# ZipFile instance is finalized; this tests for regression on SF tracker
|
||||
# bug #403871.
|
||||
try:
|
||||
zipfile.ZipFile(srcname)
|
||||
except IOError:
|
||||
# The bug we're testing for caused an AttributeError to be raised
|
||||
# when a ZipFile instance was created for a file that did not
|
||||
# exist; the .fp member was not initialized but was needed by the
|
||||
# __del__() method. Since the AttributeError is in the __del__(),
|
||||
# it is ignored, but the user should be sufficiently annoyed by
|
||||
# the message on the output that regression will be noticed
|
||||
# quickly.
|
||||
pass
|
||||
else:
|
||||
raise TestFailed("expected creation of readable ZipFile without\n"
|
||||
" a file to raise an IOError.")
|
||||
|
Loading…
Reference in New Issue
Block a user