|
""" |
|
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"] |
|
|