[pypy-commit] pypy py3.3: Implement faulthandler.enable() and disable()

amauryfa noreply at buildbot.pypy.org
Tue Jul 29 19:32:45 CEST 2014


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3.3
Changeset: r72610:9e797b4a53ee
Date: 2014-07-29 17:43 +0200
http://bitbucket.org/pypy/pypy/changeset/9e797b4a53ee/

Log:	Implement faulthandler.enable() and disable()

diff --git a/pypy/module/faulthandler/__init__.py b/pypy/module/faulthandler/__init__.py
--- a/pypy/module/faulthandler/__init__.py
+++ b/pypy/module/faulthandler/__init__.py
@@ -6,5 +6,7 @@
 
     interpleveldefs = {
         'enable': 'interp_faulthandler.enable',
+        'disable': 'interp_faulthandler.disable',
+        'is_enabled': 'interp_faulthandler.is_enabled',
         'register': 'interp_faulthandler.register',
     }
diff --git a/pypy/module/faulthandler/interp_faulthandler.py b/pypy/module/faulthandler/interp_faulthandler.py
--- a/pypy/module/faulthandler/interp_faulthandler.py
+++ b/pypy/module/faulthandler/interp_faulthandler.py
@@ -1,5 +1,15 @@
-def enable(space, __args__):
-    pass
+class FatalErrorState(object):
+    def __init__(self, space):
+        self.enabled = False
+
+def enable(space):
+    space.fromcache(FatalErrorState).enabled = True
+
+def disable(space):
+    space.fromcache(FatalErrorState).enabled = False
+
+def is_enabled(space):
+    return space.wrap(space.fromcache(FatalErrorState).enabled)
 
 def register(space, __args__):
     pass
diff --git a/pypy/module/faulthandler/test/test_faulthander.py b/pypy/module/faulthandler/test/test_faulthander.py
new file mode 100644
--- /dev/null
+++ b/pypy/module/faulthandler/test/test_faulthander.py
@@ -0,0 +1,11 @@
+class AppTestFaultHandler:
+    spaceconfig = {
+        "usemodules": ["faulthandler"]
+    }
+
+    def test_enable(self):
+        import faulthandler
+        faulthandler.enable()
+        assert faulthandler.is_enabled() is True
+        faulthandler.disable()
+        assert faulthandler.is_enabled() is False


More information about the pypy-commit mailing list