From b818bbfc438aa77c27c5fc03ebde85818b712e50 Mon Sep 17 00:00:00 2001 From: Adam Piasecki Date: Jul 01 2022 11:47:43 +0000 Subject: [PATCH 1/2] adding __str__ to error class --- diff --git a/src/kojid_cloud_scheduler/errors.py b/src/kojid_cloud_scheduler/errors.py index fbcfacc..7f6497e 100644 --- a/src/kojid_cloud_scheduler/errors.py +++ b/src/kojid_cloud_scheduler/errors.py @@ -21,3 +21,14 @@ class KCSError(Exception): self.message = message self.code = code + + def __str__(self): + """ + Return the string representation of the error/object. + + Return + ------ + str + The error message string + """ + return self.message \ No newline at end of file From 6fc760cd6285758309f14aeb2f6e97b6420a7e16 Mon Sep 17 00:00:00 2001 From: Adam Piasecki Date: Jul 01 2022 11:47:43 +0000 Subject: [PATCH 2/2] adding version subcommand --- diff --git a/src/kojid_cloud_scheduler/cli.py b/src/kojid_cloud_scheduler/cli.py index 4bbb5a5..c61deef 100644 --- a/src/kojid_cloud_scheduler/cli.py +++ b/src/kojid_cloud_scheduler/cli.py @@ -7,7 +7,7 @@ import click from .errors import KCSError from .config import Config from .kojiclient import KojiClient - +from kojid_cloud_scheduler import __version__ @click.group() @click.option('--config', '-c', default='/etc/kojid-cloud-scheduler/config.ini') @@ -30,6 +30,9 @@ def cli(ctx, config): ------ kojid_cloud_scheduler.errors.KCSError """ + if ctx.invoked_subcommand == 'version': + return + ctx.ensure_object(dict) if not os.path.exists(config): @@ -45,6 +48,18 @@ def cli(ctx, config): @click.command() +def version(): + """ + Aditional cli function which displays the version information + + Raises + ------ + errors.KCSError + """ + click.echo(f'v{__version__}') + + +@click.command() @click.pass_context def test(ctx): """ @@ -68,6 +83,7 @@ def test(ctx): ctx.exit(e.code) +cli.add_command(version) cli.add_command(test) @@ -85,4 +101,4 @@ def run(): cli() except KCSError as e: sys.stderr.write(f'{e}\n') - sys.exit(e.code) + sys.exit(e.code) \ No newline at end of file diff --git a/test/test_cli_version.py b/test/test_cli_version.py new file mode 100644 index 0000000..951146f --- /dev/null +++ b/test/test_cli_version.py @@ -0,0 +1,15 @@ +from click.testing import CliRunner + +from kojid_cloud_scheduler import cli, __version__ + + +def test_ok(): + runner = CliRunner() + + args = [ + 'version' + ] + result = runner.invoke(cli.cli, args) + + assert result.exit_code == 0 + assert result.output == f'v{__version__}\n' \ No newline at end of file