pytest.py 1.23 KB
Newer Older
Alex Gaynor's avatar
Alex Gaynor committed
1
#!/usr/bin/env python
2
# PYTHON_ARGCOMPLETE_OK
3
"""
4
pytest: unit and functional testing with Python.
5
"""
6 7 8 9 10 11 12 13
__all__ = [
    'main',
    'UsageError',
    'cmdline',
    'hookspec',
    'hookimpl',
    '__version__',
]
14

15 16 17
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
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
    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)
33 34 35
    raise SystemExit(pytest.main())

# else we are imported
36

37 38 39 40
from _pytest.config import (
    main, UsageError, _preloadplugins, cmdline,
    hookspec, hookimpl
)
41
from _pytest import __version__
42

43
_preloadplugins() # to populate pytest.* namespace so help(pytest) works
44