New submission from STINNER Victor <victor.stin...@haypocalc.com>:

"python -m test test_packaging test_zipimport" fails with:

======================================================================
FAIL: testAFakeZlib (test.test_zipimport.CompressedZipImportTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/haypo/prog/HG/cpython/Lib/test/test_zipimport.py", line 130, in 
testAFakeZlib
    self.fail("expected test to raise ImportError")
AssertionError: expected test to raise ImportError

The problem is that the zipimport module keeps a reference to zlib.decompress() 
which "makes zlib.decompress immortal": see get_decompress_func() in 
zipimport.c.

Attached patch replaces the borrowed reference by a classic reference to allow 
to unload zlib.

I don't think that it makes zipimport slower: it calls 
PyImport_ImportModuleNoBlock("io") and PyObject_GetAttrString(zlib, 
"decompress") each time instead of just once, but 
PyImport_ImportModuleNoBlock() is just a lookup in a dict (if the zlib module 
is not unloaded between two calls to get_data()).

----------
components: Extension Modules, Tests
files: zipimport_get_data.patch
keywords: patch
messages: 136334
nosy: haypo, tarek
priority: normal
severity: normal
status: open
title: python -m test test_packaging test_zipimport failure
versions: Python 3.3
Added file: http://bugs.python.org/file22033/zipimport_get_data.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue12124>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to