1
0
mirror of https://github.com/django/django.git synced 2025-10-23 21:59:11 +00:00

Fixed #31509 -- Made DiscoverRunner enable faulthandler by default.

This commit is contained in:
ovkulkarni
2020-05-06 13:52:12 -04:00
committed by Mariusz Felisiak
parent 188f7786bc
commit b7a438c7e2
5 changed files with 61 additions and 3 deletions

View File

@@ -1,9 +1,12 @@
import ctypes
import faulthandler
import io
import itertools
import logging
import multiprocessing
import os
import pickle
import sys
import textwrap
import unittest
from importlib import import_module
@@ -434,7 +437,7 @@ class DiscoverRunner:
interactive=True, failfast=False, keepdb=False,
reverse=False, debug_mode=False, debug_sql=False, parallel=0,
tags=None, exclude_tags=None, test_name_patterns=None,
pdb=False, buffer=False, **kwargs):
pdb=False, buffer=False, enable_faulthandler=True, **kwargs):
self.pattern = pattern
self.top_level = top_level
@@ -448,6 +451,11 @@ class DiscoverRunner:
self.parallel = parallel
self.tags = set(tags or [])
self.exclude_tags = set(exclude_tags or [])
if not faulthandler.is_enabled() and enable_faulthandler:
try:
faulthandler.enable(file=sys.stderr.fileno())
except (AttributeError, io.UnsupportedOperation):
faulthandler.enable(file=sys.__stderr__.fileno())
self.pdb = pdb
if self.pdb and self.parallel > 1:
raise ValueError('You cannot use --pdb with parallel tests; pass --parallel=1 to use it.')
@@ -513,6 +521,10 @@ class DiscoverRunner:
'-b', '--buffer', action='store_true',
help='Discard output from passing tests.',
)
parser.add_argument(
'--no-faulthandler', action='store_false', dest='enable_faulthandler',
help='Disables the Python faulthandler module during tests.',
)
if PY37:
parser.add_argument(
'-k', action='append', dest='test_name_patterns',