54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
"""
|
|
Entrypoint for testing from the top-level namespace.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import sys
|
|
|
|
from pandas.compat._optional import import_optional_dependency
|
|
|
|
PKG = os.path.dirname(os.path.dirname(__file__))
|
|
|
|
|
|
def test(extra_args: list[str] | None = None, run_doctests: bool = False) -> None:
|
|
"""
|
|
Run the pandas test suite using pytest.
|
|
|
|
By default, runs with the marks -m "not slow and not network and not db"
|
|
|
|
Parameters
|
|
----------
|
|
extra_args : list[str], default None
|
|
Extra marks to run the tests.
|
|
run_doctests : bool, default False
|
|
Whether to only run the Python and Cython doctests. If you would like to run
|
|
both doctests/regular tests, just append "--doctest-modules"/"--doctest-cython"
|
|
to extra_args.
|
|
|
|
Examples
|
|
--------
|
|
>>> pd.test() # doctest: +SKIP
|
|
running: pytest...
|
|
"""
|
|
pytest = import_optional_dependency("pytest")
|
|
import_optional_dependency("hypothesis")
|
|
cmd = ["-m not slow and not network and not db"]
|
|
if extra_args:
|
|
if not isinstance(extra_args, list):
|
|
extra_args = [extra_args]
|
|
cmd = extra_args
|
|
if run_doctests:
|
|
cmd = [
|
|
"--doctest-modules",
|
|
"--doctest-cython",
|
|
f"--ignore={os.path.join(PKG, 'tests')}",
|
|
]
|
|
cmd += [PKG]
|
|
joined = " ".join(cmd)
|
|
print(f"running: pytest {joined}")
|
|
sys.exit(pytest.main(cmd))
|
|
|
|
|
|
__all__ = ["test"]
|