Index: Python/import.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Python/import.c,v retrieving revision 2.230 diff -c -r2.230 import.c *** Python/import.c 1 Apr 2004 02:45:22 -0000 2.230 --- Python/import.c 2 Apr 2004 03:18:17 -0000 *************** *** 2217,2223 **** PyImport_ReloadModule(PyObject *m) { PyObject *modules = PyImport_GetModuleDict(); ! PyObject *path = NULL; char *name, *subname; char buf[MAXPATHLEN+1]; struct filedescr *fdp; --- 2217,2223 ---- PyImport_ReloadModule(PyObject *m) { PyObject *modules = PyImport_GetModuleDict(); ! PyObject *path = NULL, *loader = NULL; char *name, *subname; char buf[MAXPATHLEN+1]; struct filedescr *fdp; *************** *** 2259,2269 **** PyErr_Clear(); } buf[0] = '\0'; ! fdp = find_module(name, subname, path, buf, MAXPATHLEN+1, &fp, NULL); Py_XDECREF(path); if (fdp == NULL) return NULL; ! m = load_module(name, fp, buf, fdp->type, NULL); if (fp) fclose(fp); return m; --- 2259,2271 ---- PyErr_Clear(); } buf[0] = '\0'; ! fdp = find_module(name, subname, path, buf, MAXPATHLEN+1, &fp, ! &loader); Py_XDECREF(path); if (fdp == NULL) return NULL; ! m = load_module(name, fp, buf, fdp->type, loader); ! Py_XDECREF(loader); if (fp) fclose(fp); return m; Index: Lib/test/test_zipimport.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/test/test_zipimport.py,v retrieving revision 1.11 diff -c -r1.11 test_zipimport.py *** Lib/test/test_zipimport.py 18 Nov 2003 23:00:55 -0000 1.11 --- Lib/test/test_zipimport.py 2 Apr 2004 03:18:17 -0000 *************** *** 74,79 **** --- 74,80 ---- mod = __import__(".".join(modules), globals(), locals(), ["__dummy__"]) + sys.path.remove(TEMP_ZIP) if expected_ext: file = mod.get_file() self.assertEquals(file, os.path.join(TEMP_ZIP, *************** *** 208,213 **** --- 209,229 ---- self.doTest(".py", files, TESTMOD, stuff="Some Stuff"*31) + def testReload(self): + z = ZipFile(TEMP_ZIP, "w") + z.compression = self.compression + try: + zinfo = ZipInfo(TESTMOD+".py", time.localtime(NOW)) + z.writestr(zinfo, test_src) + z.close() + sys.path.insert(0, TEMP_ZIP) + mod = __import__(TESTMOD, globals(), locals(), + ["__dummy__"]) + sys.path.remove(TEMP_ZIP) + self.assertEqual(mod, reload(mod)) + finally: + os.remove(TEMP_ZIP) + class CompressedZipImportTestCase(UncompressedZipImportTestCase): compression = ZIP_DEFLATED