mirror of
https://github.com/arcan1s/ahriman.git
synced 2026-08-20 15:27:26 +00:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7a2d8299ad | ||
|
|
60850bfc10 |
@@ -47,7 +47,7 @@ stats = [
|
||||
"matplotlib",
|
||||
]
|
||||
unixsocket = [
|
||||
"requests-unixsocket2",
|
||||
"requests-unixsocket2", # required by unix socket support
|
||||
]
|
||||
validator = [
|
||||
"cerberus",
|
||||
@@ -61,9 +61,6 @@ 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",
|
||||
@@ -72,3 +69,6 @@ packages = [
|
||||
[tool.hatch.build.targets.wheel.shared-data]
|
||||
"package/lib" = "lib"
|
||||
"package/share" = "share"
|
||||
|
||||
[tool.hatch.version]
|
||||
path = "src/ahriman/__init__.py"
|
||||
|
||||
@@ -25,16 +25,13 @@ 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]
|
||||
only-include = [
|
||||
packages = [
|
||||
"src/ahriman",
|
||||
]
|
||||
sources = [
|
||||
"src",
|
||||
]
|
||||
|
||||
[tool.hatch.build.targets.wheel.shared-data]
|
||||
"package/share" = "share"
|
||||
|
||||
[tool.hatch.version]
|
||||
path = "../ahriman-core/src/ahriman/__init__.py"
|
||||
|
||||
@@ -32,7 +32,7 @@ auth = [
|
||||
]
|
||||
docs = [
|
||||
"aiohttp-apispec",
|
||||
"setuptools",
|
||||
"setuptools", # required by aiohttp-apispec
|
||||
]
|
||||
metrics = [
|
||||
"aiohttp-openmetrics",
|
||||
@@ -47,17 +47,14 @@ 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]
|
||||
only-include = [
|
||||
packages = [
|
||||
"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"
|
||||
|
||||
+5
-1
@@ -56,17 +56,21 @@ tests = [
|
||||
[tool.hatch.build.targets.sdist]
|
||||
exclude = [
|
||||
"/.github",
|
||||
"/archlinux",
|
||||
"/docker",
|
||||
"/package/archlinux",
|
||||
"/docs",
|
||||
"/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]
|
||||
|
||||
+30
-38
@@ -3,6 +3,36 @@ 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
|
||||
@@ -19,41 +49,3 @@ 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
|
||||
|
||||
Reference in New Issue
Block a user