Coverage for tests / unit / parsers / shellcheck_parser / conftest.py: 100%
12 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Shared fixtures and utilities for shellcheck parser tests."""
3from __future__ import annotations
5import json
6from typing import Any
9def make_shellcheck_output(issues: list[dict[str, Any]]) -> str:
10 """Create JSON output string from a list of issue dictionaries.
12 Args:
13 issues: List of issue dictionaries to serialize.
15 Returns:
16 JSON string representation of the issues.
17 """
18 return json.dumps(issues)
21def make_issue(
22 *,
23 file: str = "script.sh",
24 line: int = 10,
25 column: int = 5,
26 level: str = "warning",
27 code: int | str = 2086,
28 message: str = "Test message",
29 end_line: int | None = None,
30 end_column: int | None = None,
31) -> dict[str, Any]:
32 """Create a shellcheck issue dictionary with sensible defaults.
34 Args:
35 file: The file path.
36 line: The line number.
37 column: The column number.
38 level: The severity level.
39 code: The error code.
40 message: The error message.
41 end_line: Optional end line number.
42 end_column: Optional end column number.
44 Returns:
45 Dictionary representing a shellcheck issue.
46 """
47 issue: dict[str, Any] = {
48 "file": file,
49 "line": line,
50 "column": column,
51 "level": level,
52 "code": code,
53 "message": message,
54 }
55 if end_line is not None:
56 issue["endLine"] = end_line
57 if end_column is not None:
58 issue["endColumn"] = end_column
59 return issue