From e139688d34cc12b23d3a310f10d4f440f75f7d08 Mon Sep 17 00:00:00 2001 From: Facundo Batista Date: Sun, 17 Feb 2008 18:59:29 +0000 Subject: Issue 2112. mmap does not raises EnvironmentError no more, but a subclass of it. Thanks John Lenton. --- Lib/test/test_mmap.py | 5 +++++ Misc/NEWS | 3 +++ Modules/mmapmodule.c | 5 ++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py index 8a145cf..49ec78b 100644 --- a/Lib/test/test_mmap.py +++ b/Lib/test/test_mmap.py @@ -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) diff --git a/Misc/NEWS b/Misc/NEWS index 377f1ed..a722195 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -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. diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c index e47211f..c71d840 100644 --- a/Modules/mmapmodule.c +++ b/Modules/mmapmodule.c @@ -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 -- cgit v0.12