Issue 2112. mmap does not raises EnvironmentError no more, but

a subclass of it. Thanks John Lenton.
This commit is contained in:
Facundo Batista 2008-02-17 18:59:29 +00:00
parent f88a077f69
commit e139688d34
3 changed files with 12 additions and 1 deletions

View File

@ -436,6 +436,11 @@ class MmapTests(unittest.TestCase):
self.assertRaises(TypeError, m.write, "foo")
def test_error(self):
self.assert_(issubclass(mmap.error, EnvironmentError))
self.assert_("mmap.error" in str(mmap.error))
def test_main():
run_unittest(MmapTests)

View File

@ -1149,6 +1149,9 @@ Library
Extension Modules
-----------------
- #2112: mmap.error is now a subclass of EnvironmentError and not a
direct EnvironmentError
- Bug #2111: mmap segfaults when trying to write a block opened with PROT_READ
- #2063: correct order of utime and stime in os.times() result on Windows.

View File

@ -1402,7 +1402,10 @@ initmmap(void)
dict = PyModule_GetDict(module);
if (!dict)
return;
mmap_module_error = PyExc_EnvironmentError;
mmap_module_error = PyErr_NewException("mmap.error",
PyExc_EnvironmentError , NULL);
if (mmap_module_error == NULL)
return;
PyDict_SetItemString(dict, "error", mmap_module_error);
PyDict_SetItemString(dict, "mmap", (PyObject*) &mmap_object_type);
#ifdef PROT_EXEC