Skip to main content
Glama

Azure AHDS FHIR MCP Server

by erikhoward
test_lint_guards.py2.05 kB
#!/usr/bin/env python3 # pylint: disable=protected-access """Static checks that guard against regressing lint suppressions.""" from __future__ import annotations import re from pathlib import Path BANNED_PYLINT_CODES = { "unused-argument", "redefined-outer-name", "import-outside-toplevel", "unused-variable", "missing-type-doc", "missing-return-type-doc", } PYLINT_DISABLE_PATTERN = re.compile(r"#\s*pylint:\s*disable=([^\n]+)") TYPE_IGNORE_REGEX = re.compile(r"#\s*type:\s*ignore(?!\[)") def _iter_test_files() -> list[Path]: """Return all test modules except this guard.""" tests_root = Path(__file__).resolve().parent guard_path = Path(__file__).resolve() return [ file_path for file_path in tests_root.rglob("*.py") if file_path != guard_path ] def test_banned_pylint_codes_absent() -> None: """Ensure banned pylint disable codes are not used in tests.""" offenders: list[tuple[Path, list[str]]] = [] for file_path in _iter_test_files(): content = file_path.read_text(encoding="utf-8") for match in PYLINT_DISABLE_PATTERN.finditer(content): codes = [ code.strip() for code in match.group(1).split(",") if code.strip() ] bad_codes = sorted( {code for code in codes if code in BANNED_PYLINT_CODES}) if bad_codes: offenders.append((file_path, bad_codes)) assert not offenders, f"Found banned pylint disables: {offenders}" def test_type_ignore_annotations_absent() -> None: """Ensure generic type: ignore suppressions are avoided.""" offenders: list[tuple[Path, int]] = [] for file_path in _iter_test_files(): for line_number, line in enumerate(file_path.read_text(encoding="utf-8").splitlines(), start=1): if TYPE_IGNORE_REGEX.search(line): offenders.append((file_path, line_number)) assert not offenders, f"Found '# type: ignore' usage at: {offenders}"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/erikhoward/azure-fhir-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server