feat: add --version flag to the CLI

- Add a `--version` flag to the main CLI group using click's `version_option`
- Prints `Scrapling, version <version>` and exits, sourcing the version from `scrapling.__version__`
- Add a CLI test asserting the flag's output

Closes #299
This commit is contained in:
ETM-Code
2026-05-30 11:37:22 +01:00
parent 9ee35014fe
commit c243c8aca5
2 changed files with 11 additions and 2 deletions
+8 -1
View File
@@ -4,8 +4,9 @@ from unittest.mock import patch, MagicMock
import pytest_httpbin
from scrapling.parser import Selector
from scrapling import __version__
from scrapling.cli import (
shell, mcp, get, post, put, delete, fetch, stealthy_fetch
main, shell, mcp, get, post, put, delete, fetch, stealthy_fetch
)
@@ -32,6 +33,12 @@ class TestCLI:
def runner(self):
return CliRunner()
def test_version_flag(self, runner):
"""Test that the --version flag prints the Scrapling version and exits"""
result = runner.invoke(main, ['--version'])
assert result.exit_code == 0
assert result.output.strip() == f'Scrapling, version {__version__}'
def test_shell_command(self, runner):
"""Test shell command"""
with patch('scrapling.core.shell.CustomShell') as mock_shell: