secubox-deb/tests/test_license_headers.py
CyberMind-FR 70ac535e68 feat(license): render_header for slash/block/html comment styles (ref #81)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 09:38:20 +02:00

72 lines
2.3 KiB
Python

# tests/test_license_headers.py
"""Tests for scripts/license-headers.py.
The tool's filename contains a hyphen so it is loaded via
importlib.util.spec_from_file_location rather than a normal import.
"""
from __future__ import annotations
import importlib.util
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parent.parent
_TOOL_PATH = REPO_ROOT / "scripts" / "license-headers.py"
_spec = importlib.util.spec_from_file_location("license_headers", _TOOL_PATH)
license_headers = importlib.util.module_from_spec(_spec)
_spec.loader.exec_module(license_headers)
def test_module_imports():
assert hasattr(license_headers, "main")
EXPECTED_HASH_HEADER = (
"# SPDX-License-Identifier: LicenseRef-CMSD-1.0\n"
"# Copyright (c) 2026 CyberMind — Gérald Kerma <devel@cybermind.fr>\n"
"# Source-Disclosed License — All rights reserved except as expressly granted.\n"
"# See LICENCE-CMSD-1.0.md for terms.\n"
)
def test_render_header_hash():
assert license_headers.render_header("hash") == EXPECTED_HASH_HEADER
EXPECTED_SLASH_HEADER = (
"// SPDX-License-Identifier: LicenseRef-CMSD-1.0\n"
"// Copyright (c) 2026 CyberMind — Gérald Kerma <devel@cybermind.fr>\n"
"// Source-Disclosed License — All rights reserved except as expressly granted.\n"
"// See LICENCE-CMSD-1.0.md for terms.\n"
)
EXPECTED_BLOCK_HEADER = (
"/*\n"
" * SPDX-License-Identifier: LicenseRef-CMSD-1.0\n"
" * Copyright (c) 2026 CyberMind — Gérald Kerma <devel@cybermind.fr>\n"
" * Source-Disclosed License — All rights reserved except as expressly granted.\n"
" * See LICENCE-CMSD-1.0.md for terms.\n"
" */\n"
)
EXPECTED_HTML_HEADER = (
"<!--\n"
" SPDX-License-Identifier: LicenseRef-CMSD-1.0\n"
" Copyright (c) 2026 CyberMind — Gérald Kerma <devel@cybermind.fr>\n"
" Source-Disclosed License — All rights reserved except as expressly granted.\n"
" See LICENCE-CMSD-1.0.md for terms.\n"
"-->\n"
)
def test_render_header_slash():
assert license_headers.render_header("slash") == EXPECTED_SLASH_HEADER
def test_render_header_block():
assert license_headers.render_header("block") == EXPECTED_BLOCK_HEADER
def test_render_header_html():
assert license_headers.render_header("html") == EXPECTED_HTML_HEADER