sec-report-kit 0.3.2__tar.gz → 0.3.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of sec-report-kit might be problematic. Click here for more details.

Files changed (101) hide show
  1. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/CHANGELOG.md +11 -0
  2. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/PKG-INFO +1 -1
  3. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/pyproject.toml +2 -1
  4. sec_report_kit-0.3.4/scripts/mcp_add_workspace_filesystem.bat +43 -0
  5. sec_report_kit-0.3.4/scripts/mcp_add_workspace_filesystem.sh +38 -0
  6. sec_report_kit-0.3.4/scripts/mcp_add_workspace_filesystem_help.md +109 -0
  7. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/__init__.py +1 -1
  8. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/cli.py +3 -1
  9. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/tests/test_cli.py +30 -0
  10. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/.gitattributes +0 -0
  11. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/.github/workflows/pip-audit.yml +0 -0
  12. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/.github/workflows/publish-pypi.yml +0 -0
  13. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/.github/workflows/publish-testpypi.yml +0 -0
  14. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/.github/workflows/trivy-fs-audit.yml +0 -0
  15. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/.github/workflows/unit-test-coverage-gate.yml +0 -0
  16. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/.gitignore +0 -0
  17. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/README.md +0 -0
  18. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/bandit-gaps-vs-sast-open-source-tools.md +0 -0
  19. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/check_assets.py +0 -0
  20. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/requirements.txt +0 -0
  21. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/download_safety_db.bat +0 -0
  22. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/download_safety_db.py +0 -0
  23. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/download_safety_db.sh +0 -0
  24. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/install_external_clis.py +0 -0
  25. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/install_tools.bat +0 -0
  26. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/install_tools.sh +0 -0
  27. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_bandit_html.bat +0 -0
  28. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_bandit_html.sh +0 -0
  29. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_checkov_html.bat +0 -0
  30. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_checkov_html.sh +0 -0
  31. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_codeql_html.bat +0 -0
  32. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_codeql_html.sh +0 -0
  33. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_consolidated_html.bat +0 -0
  34. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_consolidated_html.sh +0 -0
  35. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_gitleaks_html.bat +0 -0
  36. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_gitleaks_html.sh +0 -0
  37. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_osv_scanner_html.bat +0 -0
  38. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_osv_scanner_html.sh +0 -0
  39. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_pip_audit_html.bat +0 -0
  40. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_pip_audit_html.sh +0 -0
  41. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_safety_html.bat +0 -0
  42. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_safety_html.sh +0 -0
  43. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_semgrep_html.bat +0 -0
  44. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_semgrep_html.sh +0 -0
  45. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_tfsec_html.bat +0 -0
  46. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_tfsec_html.sh +0 -0
  47. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_trivy_html.bat +0 -0
  48. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_trivy_html.sh +0 -0
  49. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_trufflehog_html.bat +0 -0
  50. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/render_trufflehog_html.sh +0 -0
  51. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_all_security_scans.bat +0 -0
  52. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_all_security_scans.sh +0 -0
  53. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_bandit.bat +0 -0
  54. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_bandit.sh +0 -0
  55. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_checkov.bat +0 -0
  56. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_checkov.sh +0 -0
  57. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_codeql.bat +0 -0
  58. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_codeql.sh +0 -0
  59. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_gitleaks.bat +0 -0
  60. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_gitleaks.sh +0 -0
  61. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_osv_scanner.bat +0 -0
  62. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_osv_scanner.sh +0 -0
  63. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_pip_audit.bat +0 -0
  64. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_pip_audit.sh +0 -0
  65. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_safety.bat +0 -0
  66. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_safety.sh +0 -0
  67. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_semgrep.bat +0 -0
  68. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_semgrep.sh +0 -0
  69. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_tfsec.bat +0 -0
  70. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_tfsec.sh +0 -0
  71. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_trivy.bat +0 -0
  72. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_trivy.sh +0 -0
  73. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_trufflehog.bat +0 -0
  74. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_trufflehog.sh +0 -0
  75. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_unit_tests_with_coverage.bat +0 -0
  76. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/scripts/run_unit_tests_with_coverage.sh +0 -0
  77. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/__main__.py +0 -0
  78. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/generate_consolidated_security_report.py +0 -0
  79. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/mcp/__init__.py +0 -0
  80. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/mcp/server.py +0 -0
  81. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/models.py +0 -0
  82. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/__init__.py +0 -0
  83. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/bandit.py +0 -0
  84. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/checkov.py +0 -0
  85. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/codeql.py +0 -0
  86. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/gitleaks.py +0 -0
  87. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/osv_scanner.py +0 -0
  88. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/pip_audit.py +0 -0
  89. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/safety.py +0 -0
  90. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/semgrep.py +0 -0
  91. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/tfsec.py +0 -0
  92. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/trivy.py +0 -0
  93. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/parsers/trufflehog.py +0 -0
  94. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/report/__init__.py +0 -0
  95. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/report/html_renderer.py +0 -0
  96. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/services/__init__.py +0 -0
  97. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/services/normalize.py +0 -0
  98. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/src/sec_report_kit/services/summarize.py +0 -0
  99. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/tests/test_html_renderer.py +0 -0
  100. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/tests/test_mcp_server.py +0 -0
  101. {sec_report_kit-0.3.2 → sec_report_kit-0.3.4}/tests/test_parsers.py +0 -0
@@ -2,6 +2,17 @@
2
2
 
3
3
  All notable changes to this project are documented in this file.
4
4
 
5
+ ## 0.3.3 - 2026-05-21
6
+
7
+ ### Added
8
+ - Added `sec_report_kit` console script alias alongside `srk` and `sec-report-kit`.
9
+
10
+ ### Changed
11
+ - CLI startup now suppresses the ASCII banner for `--help` and `--version` so these flags output only command help/version details.
12
+
13
+ ### Tests
14
+ - Added regression tests for top-level `--help` and `--version` banner behavior.
15
+
5
16
  ## 0.2.9 - 2026-05-18
6
17
 
7
18
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sec-report-kit
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
4
  Summary: Generate HTML security reports from Trivy, pip-audit, Safety, Bandit, and Gitleaks JSON
5
5
  Author: Ravi Konduru
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sec-report-kit"
7
- version = "0.3.2"
7
+ version = "0.3.4"
8
8
  description = "Generate HTML security reports from Trivy, pip-audit, Safety, Bandit, and Gitleaks JSON"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -39,6 +39,7 @@ dev = [
39
39
 
40
40
  [project.scripts]
41
41
  srk = "sec_report_kit.cli:main"
42
+ sec_report_kit = "sec_report_kit.cli:main"
42
43
  "sec-report-kit" = "sec_report_kit.cli:main"
43
44
 
44
45
  [tool.hatch.build.targets.wheel]
@@ -0,0 +1,43 @@
1
+ @echo off
2
+ setlocal EnableExtensions EnableDelayedExpansion
3
+
4
+ set "PROFILE=%~1"
5
+ if "%PROFILE%"=="" set "PROFILE=shan_s_mcp_hub"
6
+
7
+ set "TARGET_PATH=%~2"
8
+ if "%TARGET_PATH%"=="" set "TARGET_PATH=%~dp0.."
9
+
10
+ for %%I in ("%TARGET_PATH%") do set "ABS_PATH=%%~fI"
11
+
12
+ where docker >nul 2>nul
13
+ if errorlevel 1 (
14
+ echo ERROR: docker CLI was not found in PATH.
15
+ exit /b 1
16
+ )
17
+
18
+ echo Using profile: %PROFILE%
19
+ echo Allowing path: %ABS_PATH%
20
+
21
+ set "SERVER_REF=catalog://mcp/docker-mcp-catalog/filesystem"
22
+ docker mcp profile server add "%PROFILE%" --server "%SERVER_REF%" >nul 2>nul
23
+ if errorlevel 1 (
24
+ echo Filesystem server may already exist in profile. Continuing...
25
+ ) else (
26
+ echo Added filesystem server to profile.
27
+ )
28
+
29
+ set "ESCAPED_PATH=%ABS_PATH:\=\\%"
30
+ docker mcp profile config "%PROFILE%" --set "filesystem.paths=[%ESCAPED_PATH%]"
31
+ if errorlevel 1 (
32
+ echo ERROR: failed to set filesystem.paths.
33
+ exit /b 1
34
+ )
35
+
36
+ echo.
37
+ echo Done. Current filesystem.paths value:
38
+ docker mcp profile config "%PROFILE%" --get filesystem.paths
39
+ if errorlevel 1 exit /b 1
40
+
41
+ echo.
42
+ echo Example:
43
+ echo %~nx0 shan_s_mcp_hub C:\MyProjects\sec-report-kit
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ PROFILE="${1:-shan_s_mcp_hub}"
5
+ TARGET_PATH="${2:-$(dirname "$0")/..}"
6
+
7
+ if command -v cygpath >/dev/null 2>&1; then
8
+ # Git Bash/MSYS path -> Windows path for Docker Desktop on Windows.
9
+ ABS_PATH="$(cygpath -w "$(cd "$TARGET_PATH" && pwd)")"
10
+ else
11
+ ABS_PATH="$(cd "$TARGET_PATH" && pwd)"
12
+ fi
13
+
14
+ if ! command -v docker >/dev/null 2>&1; then
15
+ echo "ERROR: docker CLI was not found in PATH."
16
+ exit 1
17
+ fi
18
+
19
+ echo "Using profile: ${PROFILE}"
20
+ echo "Allowing path: ${ABS_PATH}"
21
+
22
+ SERVER_REF="catalog://mcp/docker-mcp-catalog/filesystem"
23
+ if docker mcp profile server add "${PROFILE}" --server "${SERVER_REF}" >/dev/null 2>&1; then
24
+ echo "Added filesystem server to profile."
25
+ else
26
+ echo "Filesystem server may already exist in profile. Continuing..."
27
+ fi
28
+
29
+ ESCAPED_PATH="${ABS_PATH//\\/\\\\}"
30
+ docker mcp profile config "${PROFILE}" --set "filesystem.paths=[${ESCAPED_PATH}]"
31
+
32
+ echo
33
+ echo "Done. Current filesystem.paths value:"
34
+ docker mcp profile config "${PROFILE}" --get filesystem.paths
35
+
36
+ echo
37
+ echo "Example:"
38
+ echo " ./scripts/mcp_add_workspace_filesystem.sh shan_s_mcp_hub /c/MyProjects/sec-report-kit"
@@ -0,0 +1,109 @@
1
+ # MCP Add Workspace Filesystem Scripts — Usage Guide
2
+
3
+ This document explains how to use the provided scripts to add any local folder (such as this repository) to your Docker Desktop MCP Toolkit profile as a filesystem server.
4
+
5
+ ---
6
+
7
+ ## Scripts Overview
8
+
9
+ - **mcp_add_workspace_filesystem.bat** — For Windows (cmd/PowerShell)
10
+ - **mcp_add_workspace_filesystem.sh** — For Linux, macOS, or Git Bash (Windows)
11
+
12
+ Both scripts automate:
13
+ - Adding the MCP filesystem server to your chosen profile (if not already present)
14
+ - Setting the allowed path(s) for the server to the folder you specify
15
+
16
+ ---
17
+
18
+ ## Prerequisites
19
+
20
+ - **Docker Desktop** must be installed and running
21
+ - **Docker MCP Toolkit** must be available in your PATH (the `docker mcp` command should work)
22
+ - You should have an existing MCP profile (e.g., `shan_s_mcp_hub`)
23
+
24
+ ---
25
+
26
+ ## Usage
27
+
28
+ ### Windows (cmd/PowerShell)
29
+
30
+ ```bat
31
+ scripts\mcp_add_workspace_filesystem.bat [profile] [folder]
32
+ ```
33
+ - `profile` (optional): MCP profile name (default: `shan_s_mcp_hub`)
34
+ - `folder` (optional): Path to the folder to allow (default: parent of scripts folder)
35
+
36
+ **Example:**
37
+ ```bat
38
+ scripts\mcp_add_workspace_filesystem.bat shan_s_mcp_hub C:\MyProjects\sec-report-kit
39
+ ```
40
+
41
+ ### Linux/macOS/Git Bash
42
+
43
+ ```sh
44
+ ./scripts/mcp_add_workspace_filesystem.sh [profile] [folder]
45
+ ```
46
+ - `profile` (optional): MCP profile name (default: `shan_s_mcp_hub`)
47
+ - `folder` (optional): Path to the folder to allow (default: parent of scripts folder)
48
+
49
+ **Example:**
50
+ ```sh
51
+ ./scripts/mcp_add_workspace_filesystem.sh shan_s_mcp_hub /c/MyProjects/sec-report-kit
52
+ ```
53
+
54
+ ---
55
+
56
+ ## What the Scripts Do
57
+
58
+ 1. **Add the filesystem server** to your MCP profile (if not already present)
59
+ 2. **Set the allowed path** for the server to the folder you specify
60
+ 3. **Print the current allowed paths** for verification
61
+
62
+ ---
63
+
64
+ ## How to Use the MCP Server in Docker
65
+
66
+ 1. **Start Docker Desktop**
67
+ 2. **Start the MCP Gateway** with your profile:
68
+ ```
69
+ docker mcp gateway start --profile shan_s_mcp_hub
70
+ ```
71
+ 3. **Use MCP-compatible tools/clients** to interact with your workspace via the filesystem server (e.g., list files, read/write, etc.)
72
+ - Example: List files
73
+ ```
74
+ docker mcp client call filesystem.list_directory --profile shan_s_mcp_hub --args path="C:\\MyProjects\\sec-report-kit"
75
+ ```
76
+ 4. **Stop the gateway** when done:
77
+ ```
78
+ docker mcp gateway stop
79
+ ```
80
+
81
+ ---
82
+
83
+ ## Troubleshooting
84
+
85
+ - Ensure Docker Desktop is running and healthy
86
+ - Ensure `docker mcp` commands work in your terminal
87
+ - If you see permission errors, check that the folder path is correct and accessible
88
+ - You can run the script multiple times for different folders or profiles
89
+
90
+ ---
91
+
92
+ ## Notes
93
+
94
+ - The scripts are idempotent: running them again with the same arguments is safe
95
+ - You can add multiple folders by editing the profile config or running the script for each folder
96
+ - For advanced usage, see `docker mcp profile --help` and `docker mcp profile server add --help`
97
+
98
+ ---
99
+
100
+ ## Committing the Scripts
101
+
102
+ Be sure to commit both scripts and this help document to your repository:
103
+ - `scripts/mcp_add_workspace_filesystem.bat`
104
+ - `scripts/mcp_add_workspace_filesystem.sh`
105
+ - `scripts/mcp_add_workspace_filesystem_help.md`
106
+
107
+ ---
108
+
109
+ For further help, see the official Docker MCP Toolkit documentation or ask your AI assistant.
@@ -1,4 +1,4 @@
1
1
  """sec_report_kit package."""
2
2
 
3
3
  __all__ = ["__version__"]
4
- __version__ = "0.3.2"
4
+ __version__ = "0.3.3"
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import datetime as dt
4
4
  import json
5
+ import sys
5
6
  from pathlib import Path
6
7
  from typing import Any
7
8
 
@@ -467,7 +468,8 @@ ASCII_BANNER = """
467
468
 
468
469
 
469
470
  def main() -> None:
470
- typer.echo(ASCII_BANNER)
471
+ if not any(flag in sys.argv[1:] for flag in ("--help", "-h", "--version")):
472
+ typer.echo(ASCII_BANNER)
471
473
  app()
472
474
 
473
475
 
@@ -305,6 +305,36 @@ def test_main_calls_app(monkeypatch):
305
305
  assert exc.value.code == 0
306
306
 
307
307
 
308
+ def test_main_help_does_not_print_banner(monkeypatch, capsys):
309
+ import pytest
310
+
311
+ monkeypatch.setattr("sys.argv", ["srk", "--help"])
312
+ from sec_report_kit.cli import main
313
+
314
+ with pytest.raises(SystemExit) as exc:
315
+ main()
316
+
317
+ captured = capsys.readouterr()
318
+ assert exc.value.code == 0
319
+ assert "____ _____" not in captured.out
320
+
321
+
322
+ def test_main_version_does_not_print_banner(monkeypatch, capsys):
323
+ import pytest
324
+ from sec_report_kit import __version__
325
+
326
+ monkeypatch.setattr("sys.argv", ["srk", "--version"])
327
+ from sec_report_kit.cli import main
328
+
329
+ with pytest.raises(SystemExit) as exc:
330
+ main()
331
+
332
+ captured = capsys.readouterr()
333
+ assert exc.value.code == 0
334
+ assert f"sec-report-kit {__version__}" in captured.out
335
+ assert "____ _____" not in captured.out
336
+
337
+
308
338
  # Cover cli.py line 195: except ValueError as exc: (in _parse_modified_since)
309
339
  def test_parse_modified_since_invalid_value():
310
340
  from sec_report_kit.cli import _parse_modified_since
File without changes