Coverage for tests/test_discovery.py: 100%
13 statements
« prev ^ index » next coverage.py v7.14.3, created at 2026-06-27 17:58 +0000
« prev ^ index » next coverage.py v7.14.3, created at 2026-06-27 17:58 +0000
1# SPDX-FileCopyrightText: 2026 Arcangelo Massari <github@a.arcangelomassari.com>
2#
3# SPDX-License-Identifier: ISC
5from __future__ import annotations
7from pathlib import Path
9import pytest
11from software_citation_sync.config import ProjectMetadata
12from software_citation_sync.discovery import discover_project_metadata, discover_version
15def test_discover_version_requires_package_json_version(tmp_path: Path) -> None:
16 (tmp_path / "package.json").write_text('{"name": "ramose"}', encoding="utf-8")
18 with pytest.raises(KeyError) as exc_info:
19 discover_version(tmp_path)
21 assert exc_info.value.args == ("version",)
24def test_discover_project_metadata_from_pyproject(tmp_path: Path) -> None:
25 (tmp_path / "pyproject.toml").write_text(
26 "\n".join(
27 [
28 "[project]",
29 'name = "ramose"',
30 'version = "2.8.0"',
31 'authors = [{ name = "Arcangelo Massari", email = "github@a.arcangelomassari.com" }]',
32 "",
33 ],
34 ),
35 encoding="utf-8",
36 )
38 assert discover_project_metadata(tmp_path) == ProjectMetadata(
39 title="ramose",
40 authors=("Arcangelo Massari",),
41 )