Compare commits

..
1 Commits
Author SHA1 Message Date
arcanis 2e5da95ec7 reformat tomls 2026-07-15 15:55:58 +03:00
7 changed files with 58 additions and 48 deletions
+4 -4
View File
@@ -47,7 +47,7 @@ stats = [
"matplotlib",
]
unixsocket = [
"requests-unixsocket2", # required by unix socket support
"requests-unixsocket2",
]
validator = [
"cerberus",
@@ -61,6 +61,9 @@ Documentation = "https://ahriman.readthedocs.io/"
Repository = "https://github.com/arcan1s/ahriman"
Changelog = "https://github.com/arcan1s/ahriman/releases"
[tool.hatch.version]
path = "src/ahriman/__init__.py"
[tool.hatch.build.targets.wheel]
packages = [
"src/ahriman",
@@ -69,6 +72,3 @@ packages = [
[tool.hatch.build.targets.wheel.shared-data]
"package/lib" = "lib"
"package/share" = "share"
[tool.hatch.version]
path = "src/ahriman/__init__.py"
+7 -4
View File
@@ -25,13 +25,16 @@ Documentation = "https://ahriman.readthedocs.io/"
Repository = "https://github.com/arcan1s/ahriman"
Changelog = "https://github.com/arcan1s/ahriman/releases"
[tool.hatch.version]
path = "../ahriman-core/src/ahriman/__init__.py"
[tool.hatch.build.targets.wheel]
packages = [
only-include = [
"src/ahriman",
]
sources = [
"src",
]
[tool.hatch.build.targets.wheel.shared-data]
"package/share" = "share"
[tool.hatch.version]
path = "../ahriman-core/src/ahriman/__init__.py"
+8 -5
View File
@@ -32,7 +32,7 @@ auth = [
]
docs = [
"aiohttp-apispec",
"setuptools", # required by aiohttp-apispec
"setuptools",
]
metrics = [
"aiohttp-openmetrics",
@@ -47,14 +47,17 @@ Documentation = "https://ahriman.readthedocs.io/"
Repository = "https://github.com/arcan1s/ahriman"
Changelog = "https://github.com/arcan1s/ahriman/releases"
[tool.hatch.version]
path = "../ahriman-core/src/ahriman/__init__.py"
[tool.hatch.build.targets.wheel]
packages = [
only-include = [
"src/ahriman",
]
sources = [
"src",
]
[tool.hatch.build.targets.wheel.shared-data]
"package/lib" = "lib"
"package/share" = "share"
[tool.hatch.version]
path = "../ahriman-core/src/ahriman/__init__.py"
+1 -5
View File
@@ -56,21 +56,17 @@ tests = [
[tool.hatch.build.targets.sdist]
exclude = [
"/.github",
"/archlinux",
"/docker",
"/docs",
"/package/archlinux",
"/recipes",
"/tools",
"tests",
"/.bandit.yml",
"/.dockerignore",
"/.pylint.toml",
"/.readthedocs.yml",
"/conftest.py",
"/github-logo.png",
"/tox.toml",
"/toxfile.py",
"/web.png",
]
[tool.hatch.build.targets.wheel]
+38 -30
View File
@@ -3,36 +3,6 @@ from pathlib import Path
from ahriman.core.utils import walk
def _test_path(source_root: Path, source_file: Path) -> Path:
"""
generate expected test path for source file
Args:
source_root(Path): package source root
source_file(Path): source file
Returns:
Path: expected test file path
"""
relative_path = source_file.relative_to(source_root)
match relative_path.parts:
# some workaround for well known files
case ("ahriman", "application", "handlers", *_, source_name) if source_name != "handler.py":
return relative_path.parent / f"test_handler_{source_name}"
case ("ahriman", "web", "views", "api", source_name):
return relative_path.parent / f"test_view_api_{source_name}"
case ("ahriman", "web", "views", version, api, source_name) if version in ("v1", "v2"):
return relative_path.parent / f"test_view_{version}_{api}_{source_name}"
case ("ahriman", "web", "views", *_, source_name):
if source_name.endswith("_guard.py"):
return relative_path.parent / f"test_{source_name}"
else:
return relative_path.parent / f"test_view_{source_name}"
case _:
return relative_path.parent / f"test_{source_file.name}"
def test_test_coverage() -> None:
"""
must have test files for each source file
@@ -49,3 +19,41 @@ def test_test_coverage() -> None:
for source_file in filter(lambda fn: fn.suffix == ".py" and fn.name != "__init__.py", walk(source_root)):
test_file = package_root / "tests" / _test_path(source_root, source_file)
assert test_file.is_file(), test_file
def _test_path(source_root: Path, source_file: Path) -> Path:
"""
generate expected test path for source file
Args:
source_root(Path): package source root
source_file(Path): source file
Returns:
Path: expected test file path
"""
relative_path = source_file.relative_to(source_root)
match relative_path.parts:
# some workaround for well known files
case ("ahriman", "application", "handlers", *_, filename) if filename != "handler.py":
filename = f"test_handler_{source_file.name}"
test_parent = Path("ahriman", "application", "handlers")
case ("ahriman", "web", "views", _, filename) if (api := relative_path.parts[3]) == "api":
filename = f"test_view_{api}_{source_file.name}"
test_parent = relative_path.parent
case ("ahriman", "web", "views", _, _, filename) if (version := relative_path.parts[3]) in ("v1", "v2"):
api = relative_path.parts[4]
filename = f"test_view_{version}_{api}_{source_file.name}"
test_parent = relative_path.parent
case ("ahriman", "web", "views", *_, filename):
if source_file.name.endswith("_guard.py"):
filename = f"test_{source_file.name}"
else:
filename = f"test_view_{source_file.name}"
test_parent = relative_path.parent
case _:
filename = f"test_{source_file.name}"
test_parent = relative_path.parent
return test_parent / filename