import re
import tomllib
from pathlib import Path
import denet
CARGO_TOML = Path(__file__).resolve().parents[2] / "Cargo.toml"
PYPROJECT = Path(__file__).resolve().parents[2] / "pyproject.toml"
def _pyo3():
cfg = tomllib.loads(CARGO_TOML.read_text())
return cfg["dependencies"]["pyo3"]
def test_version_matches_package_metadata():
declared = tomllib.loads(PYPROJECT.read_text())["project"]["version"]
assert denet.__version__ == declared, (
f"denet.__version__ ({denet.__version__}) != pyproject version ({declared})"
)
def test_ext_module_imports_and_runs():
m = denet.ProcessMonitor(cmd=["sleep", "0.1"], base_interval_ms=20, max_interval_ms=40)
assert "ts_ms" in (m.sample_once() or "")
def test_pyo3_builds_abi3_wheel():
features = _pyo3().get("features", [])
assert any(f.startswith("abi3") for f in features), (
f"pyo3 must enable an abi3-pyXX feature for forward-compatible wheels; got {features}"
)
def test_pyo3_recent_enough_for_py313():
ver = _pyo3()["version"]
major, minor = (int(x) for x in re.findall(r"\d+", ver)[:2])
assert (major, minor) >= (0, 23), f"pyo3 {ver} predates Python 3.13 support"