feat: --version CLI option

This commit is contained in:
Éloi Rivard 2025-01-02 23:29:58 +01:00
parent 3ebf35a447
commit e1ca7dfe1e
No known key found for this signature in database
GPG key ID: 7EDA204EA57DD184
3 changed files with 27 additions and 0 deletions

View file

@ -1,3 +1,10 @@
[0.0.58] - Unreleased
---------------------
Added
^^^^^
- ``--version`` option to the CLI. :pr:`209`
[0.0.57] - 2024-12-31
---------------------

View file

@ -1,3 +1,5 @@
import importlib.metadata
import click
from flask.cli import FlaskGroup
@ -7,6 +9,8 @@ import canaille.core.commands
import canaille.oidc.commands
from canaille import create_app
version = importlib.metadata.version("canaille")
@click.group(
cls=FlaskGroup,
@ -14,6 +18,7 @@ from canaille import create_app
add_version_option=False,
add_default_commands=False,
)
@click.version_option(version, prog_name="Canaille")
def cli():
"""Canaille management utilities."""
@ -22,3 +27,7 @@ canaille.app.commands.register(cli)
canaille.backends.commands.register(cli)
canaille.core.commands.register(cli)
canaille.oidc.commands.register(cli)
if __name__ == "__main__": # pragma: no cover
cli()

View file

@ -0,0 +1,11 @@
import re
from canaille.commands import cli
def test_check_command(testclient, mock_smpp):
runner = testclient.app.test_cli_runner()
res = runner.invoke(cli, ["--version"])
semver_pattern = r"(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?"
assert re.match(rf"Canaille, version {semver_pattern}", res.stdout)
assert res.exit_code == 0, res.stdout