Initial commit (Clean history)
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,60 @@
|
||||
# When testrunner.py is invoked with --coverage, it puts this first
|
||||
# on the path as per https://coverage.readthedocs.io/en/coverage-4.0b3/subprocess.html.
|
||||
# Note that this disables other sitecustomize.py files.
|
||||
import coverage
|
||||
import coverage.exceptions
|
||||
try:
|
||||
coverage.process_startup()
|
||||
except AttributeError as e:
|
||||
if 'coverage' in str(e) and 'CTracer' in str(e):
|
||||
# AttributeError: module 'coverage.tracer' has no attribute 'CTracer'
|
||||
# on github actions. Leads to warnings later:
|
||||
# "Couldn't import C tracer: module coverage.tracer "
|
||||
# "does not support loading in subinterpreters (no-ctracer)"
|
||||
# Seen in test_interpreters.py
|
||||
#
|
||||
# HOWEVER: Now coverage also emits a warning (CoverageWarning: Couldn't import C
|
||||
# tracer: module coverage.tracer does not support loading in subinterpreters
|
||||
# (no-ctracer)) that gets printed to stderr by default. This is unexpected
|
||||
# and breaks the test. So we ignore that in testrunner.py
|
||||
pass
|
||||
else:
|
||||
raise
|
||||
except (coverage.CoverageException,
|
||||
# As of Coverage 7, the ConfigError seems to be the one raised.
|
||||
# Not sure when that changed, it used to be CoverageException. Go
|
||||
# ahead and keep both for safety.
|
||||
coverage.exceptions.ConfigError,
|
||||
) as e:
|
||||
|
||||
if str(e) in (
|
||||
"Can't support concurrency=greenlet with PyTracer, only threads are supported",
|
||||
):
|
||||
pass
|
||||
elif str(e) in (
|
||||
# We get this one for the stdlib test_interpreters: greenlet up through at least
|
||||
# 3.2.0 produces "ImportError: module greenlet._greenlet does not support loading
|
||||
# in subinterpreters". Now, this is a fairly broad brush with which to try to
|
||||
# catch that specific case, so we fallback and look for that import error
|
||||
# as well to make it more specific to exactly this case.
|
||||
"Couldn't trace with concurrency=greenlet, the module isn't installed.",
|
||||
):
|
||||
ignore = False
|
||||
try:
|
||||
__import__('greenlet')
|
||||
except ImportError as ie:
|
||||
if str(ie) in (
|
||||
"module greenlet._greenlet does not support loading in subinterpreters",
|
||||
):
|
||||
ignore = True
|
||||
if not ignore:
|
||||
raise
|
||||
|
||||
else:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
raise
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
raise
|
||||
Reference in New Issue
Block a user