Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions tests/test_dynamic_metadata_unit.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
from scikit_build_core.builder._load_provider import process_dynamic_metadata


def test_template_basic() -> None:
pyproject = process_dynamic_metadata(
{
"name": "test",
"version": "0.1.0",
"dynamic": ["requires-python"],
},
{
"requires-python": {
"provider": "scikit_build_core.metadata.template",
"result": ">={project[version]}",
},
},
)

assert pyproject["requires-python"] == ">=0.1.0"


def test_template_needs() -> None:
# These are intentionally out of order to test the order of processing
pyproject = process_dynamic_metadata(
{
"name": "test",
"version": "0.1.0",
"dynamic": ["requires-python", "license", "readme"],
},
{
"license": {
"provider": "scikit_build_core.metadata.template",
"result": "{project[requires-python]}",
},
"readme": {
"provider": "scikit_build_core.metadata.template",
"result": {"file": "{project[license]}"},
},
"requires-python": {
"provider": "scikit_build_core.metadata.template",
"result": ">={project[version]}",
},
},
)

assert pyproject["requires-python"] == ">=0.1.0"


def test_regex() -> None:
pyproject = process_dynamic_metadata(
{
"name": "test",
"version": "0.1.0",
"dynamic": ["requires-python"],
},
{
"requires-python": {
"provider": "scikit_build_core.metadata.regex",
"input": "pyproject.toml",
"regex": r"name = \"(?P<name>.+)\"",
"result": ">={name}",
},
},
)

assert pyproject["requires-python"] == ">=scikit_build_core"
38 changes: 38 additions & 0 deletions tests/test_settings_docs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
from __future__ import annotations

from scikit_build_core.settings.documentation import DCDoc, mk_docs
from scikit_build_core.settings.skbuild_docs import mk_skbuild_docs
from scikit_build_core.settings.skbuild_model import ScikitBuildSettings


def test_skbuild_docs() -> None:
docs = mk_skbuild_docs()
assert (
"A table of defines to pass to CMake when configuring the project. Additive."
in docs
)
assert "DEPRECATED in 0.10, use build.verbose instead." in docs
assert "fail = false" in docs


def test_mk_docs() -> None:
docs = set(mk_docs(ScikitBuildSettings))

assert (
DCDoc(
name="cmake.minimum-version",
default='""',
docs="DEPRECATED in 0.8; use version instead.",
deprecated=True,
)
in docs
)
assert (
DCDoc(
name="install.strip",
default="true",
docs="Whether to strip the binaries. True for release builds on scikit-build-core 0.5+ (0.5-0.10.5 also incorrectly set this for debug builds).",
deprecated=False,
)
in docs
)
Loading