ai-content-maker/.venv/Lib/site-packages/numba/testing/__init__.py

62 lines
1.9 KiB
Python

import os
import sys
import functools
import unittest
import traceback
from fnmatch import fnmatch
from os.path import join, isfile, relpath, normpath, splitext
from .main import NumbaTestProgram, SerialSuite, make_tag_decorator
from numba.core import config
def load_testsuite(loader, dir):
"""Find tests in 'dir'."""
try:
suite = unittest.TestSuite()
files = []
for f in os.listdir(dir):
path = join(dir, f)
if isfile(path) and fnmatch(f, 'test_*.py'):
files.append(f)
elif isfile(join(path, '__init__.py')):
suite.addTests(loader.discover(path))
for f in files:
# turn 'f' into a filename relative to the toplevel dir...
f = relpath(join(dir, f), loader._top_level_dir)
# ...and translate it to a module name.
f = splitext(normpath(f.replace(os.path.sep, '.')))[0]
suite.addTests(loader.loadTestsFromName(f))
return suite
except Exception:
traceback.print_exc(file=sys.stderr)
sys.exit(-1)
def run_tests(argv=None, defaultTest=None, topleveldir=None,
xmloutput=None, verbosity=1, nomultiproc=False):
"""
args
----
- xmloutput [str or None]
Path of XML output directory (optional)
- verbosity [int]
Verbosity level of tests output
Returns the TestResult object after running the test *suite*.
"""
if xmloutput is not None:
import xmlrunner
runner = xmlrunner.XMLTestRunner(output=xmloutput)
else:
runner = None
prog = NumbaTestProgram(argv=argv,
module=None,
defaultTest=defaultTest,
topleveldir=topleveldir,
testRunner=runner, exit=False,
verbosity=verbosity,
nomultiproc=nomultiproc)
return prog.result