generated from coulomb/repo-seed
74 lines
2.2 KiB
Python
74 lines
2.2 KiB
Python
from repo_scoping.repo_ingestion.metadata import RepositoryMetadataExtractor
|
|
|
|
|
|
def test_metadata_prefers_source_identity_over_pyproject(tmp_path):
|
|
repo = tmp_path / "repo-scoping"
|
|
repo.mkdir()
|
|
(repo / "pyproject.toml").write_text(
|
|
'[project]\nname = "repo-registry"\ndescription = "Repository Scoping."\n',
|
|
encoding="utf-8",
|
|
)
|
|
|
|
metadata = RepositoryMetadataExtractor().extract(repo, str(repo))
|
|
|
|
assert metadata.name == "repo-scoping"
|
|
assert metadata.description == "Repository Scoping."
|
|
|
|
|
|
def test_metadata_uses_pyproject_when_source_name_is_generic(tmp_path):
|
|
repo = tmp_path / "repo"
|
|
repo.mkdir()
|
|
(repo / "pyproject.toml").write_text(
|
|
'[project]\nname = "invoice-tools"\ndescription = "Extract invoice data."\n',
|
|
encoding="utf-8",
|
|
)
|
|
|
|
metadata = RepositoryMetadataExtractor().extract(repo, str(repo))
|
|
|
|
assert metadata.name == "invoice-tools"
|
|
assert metadata.description == "Extract invoice data."
|
|
|
|
|
|
def test_metadata_uses_package_json_when_source_name_is_generic(tmp_path):
|
|
repo = tmp_path / "repo"
|
|
repo.mkdir()
|
|
(repo / "package.json").write_text(
|
|
'{"name":"frontend-registry","description":"Browse repository abilities."}',
|
|
encoding="utf-8",
|
|
)
|
|
|
|
metadata = RepositoryMetadataExtractor().extract(repo, str(repo))
|
|
|
|
assert metadata.name == "frontend-registry"
|
|
assert metadata.description == "Browse repository abilities."
|
|
|
|
|
|
def test_metadata_uses_readme_title_when_source_name_is_generic(tmp_path):
|
|
repo = tmp_path / "repository"
|
|
repo.mkdir()
|
|
(repo / "README.md").write_text(
|
|
"# Useful Registry\n\nExtra details follow.\n",
|
|
encoding="utf-8",
|
|
)
|
|
|
|
metadata = RepositoryMetadataExtractor().extract(repo, str(repo))
|
|
|
|
assert metadata.name == "Useful Registry"
|
|
assert metadata.description == "Extra details follow."
|
|
|
|
|
|
def test_metadata_strips_git_suffix_from_url_identity(tmp_path):
|
|
repo = tmp_path / "checkout"
|
|
repo.mkdir()
|
|
(repo / "pyproject.toml").write_text(
|
|
'[project]\nname = "old-package-name"\n',
|
|
encoding="utf-8",
|
|
)
|
|
|
|
metadata = RepositoryMetadataExtractor().extract(
|
|
repo,
|
|
"https://example.test/acme/repo-scoping.git",
|
|
)
|
|
|
|
assert metadata.name == "repo-scoping"
|