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

1# SPDX-FileCopyrightText: 2026 Arcangelo Massari <github@a.arcangelomassari.com> 

2# 

3# SPDX-License-Identifier: ISC 

4 

5from __future__ import annotations 

6 

7from pathlib import Path 

8 

9import pytest 

10 

11from software_citation_sync.config import ProjectMetadata 

12from software_citation_sync.discovery import discover_project_metadata, discover_version 

13 

14 

15def test_discover_version_requires_package_json_version(tmp_path: Path) -> None: 

16 (tmp_path / "package.json").write_text('{"name": "ramose"}', encoding="utf-8") 

17 

18 with pytest.raises(KeyError) as exc_info: 

19 discover_version(tmp_path) 

20 

21 assert exc_info.value.args == ("version",) 

22 

23 

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 ) 

37 

38 assert discover_project_metadata(tmp_path) == ProjectMetadata( 

39 title="ramose", 

40 authors=("Arcangelo Massari",), 

41 )