-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathconftest.py
49 lines (34 loc) · 1.42 KB
/
conftest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
"""Doctest configuration."""
import os
from collections.abc import Callable, Iterable, Sequence
from doctest import ELLIPSIS, NORMALIZE_WHITESPACE
from typing import Any
from sybil import Document, Region, Sybil
from sybil.parsers import myst, rest
from optional_dependencies import OptionalDependencyEnum, auto
optionflags = ELLIPSIS | NORMALIZE_WHITESPACE
parsers: Sequence[Callable[[Document], Iterable[Region]]] = [
myst.DocTestDirectiveParser(optionflags=optionflags),
myst.PythonCodeBlockParser(doctest_optionflags=optionflags),
myst.SkipParser(),
]
docs = Sybil(parsers=parsers, patterns=["*.md"])
python = Sybil(
parsers=[*parsers, rest.DocTestParser(optionflags=optionflags)], patterns=["*.py"]
)
pytest_collect_file = (docs + python).pytest()
class OptDeps(OptionalDependencyEnum):
"""Optional dependencies for ``unxt``."""
ASTROPY = auto()
GALA = auto()
MATPLOTLIB = auto()
collect_ignore_glob = []
if not OptDeps.ASTROPY.installed:
collect_ignore_glob.append("src/unxt/_interop/unxt_interop_astropy/*")
if not OptDeps.GALA.installed:
collect_ignore_glob.append("src/unxt/_interop/unxt_interop_gala/*")
collect_ignore_glob.append("docs/interop/gala.md")
if not OptDeps.MATPLOTLIB.installed:
collect_ignore_glob.append("src/unxt/_interop/unxt_interop_mpl/*")
def pytest_generate_tests(metafunc: Any) -> None:
os.environ["UNXT_ENABLE_RUNTIME_TYPECHECKING"] = "beartype.beartype"