diff options
author | 2014-08-29 11:40:01 +0300 | |
---|---|---|
committer | 2014-08-29 11:40:01 +0300 | |
commit | 46da6095fe8400d8a9c65ea4509d30a2ec270aeb (patch) | |
tree | 8a1e4bb755d52e7c899b2c549f329df52ee6ab91 /pytest.py | |
parent | merge heads (diff) | |
download | pypy-46da6095fe8400d8a9c65ea4509d30a2ec270aeb.tar.gz pypy-46da6095fe8400d8a9c65ea4509d30a2ec270aeb.tar.bz2 pypy-46da6095fe8400d8a9c65ea4509d30a2ec270aeb.zip |
avoid windows-app crashes opening a dialog box for single tests
Diffstat (limited to 'pytest.py')
-rwxr-xr-x | pytest.py | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -8,6 +8,21 @@ __all__ = ['main'] if __name__ == '__main__': # if run as a script or by 'python -m pytest' # we trigger the below "else" condition by the following import import pytest + import sys + if sys.platform == 'win32': + #Try to avoid opeing a dialog box if one of the tests causes a system error + import ctypes + winapi = ctypes.windll.kernel32 + SetErrorMode = winapi.SetErrorMode + SetErrorMode.argtypes=[ctypes.c_int] + + SEM_FAILCRITICALERRORS = 1 + SEM_NOGPFAULTERRORBOX = 2 + SEM_NOOPENFILEERRORBOX = 0x8000 + flags = SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX + #Since there is no GetErrorMode, do a double Set + old_mode = SetErrorMode(flags) + SetErrorMode(old_mode | flags) raise SystemExit(pytest.main()) # else we are imported |