-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathconftest.py
54 lines (39 loc) · 1.65 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
50
51
52
53
54
"""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.myst import (
DocTestDirectiveParser as MarkdownDocTestDirectiveParser,
PythonCodeBlockParser as MarkdownPythonCodeBlockParser,
SkipParser as MarkdownSkipParser,
)
from sybil.parsers.rest import DocTestParser as ReSTDocTestParser
from optional_dependencies import OptionalDependencyEnum, auto
optionflags = ELLIPSIS | NORMALIZE_WHITESPACE
parsers: Sequence[Callable[[Document], Iterable[Region]]] = [
MarkdownDocTestDirectiveParser(optionflags=optionflags),
MarkdownPythonCodeBlockParser(doctest_optionflags=optionflags),
MarkdownSkipParser(),
]
docs = Sybil(parsers=parsers, patterns=["*.md"])
python = Sybil(
parsers=[ReSTDocTestParser(optionflags=optionflags), *parsers], 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"