From b78b49f7d57d03938f973f0542a08417c84bb77e Mon Sep 17 00:00:00 2001 From: Kevin Ji Date: Mon, 7 Feb 2022 18:41:15 -0800 Subject: [PATCH] Make --version output valid YAML for parsing #2856 This commit adds a colon so the --version output goes from ScanCode version 30.1.0 ScanCode Output Format version 2.0.0 SPDX License list version 3.15 to ScanCode version: 30.1.0 ScanCode Output Format version: 2.0.0 SPDX License list version: 3.15 This will make the output easier to parse since it is valid YAML now. This also includes a test validating this behavior. Signed-off-by: Kevin Ji --- src/scancode/cli.py | 6 +++--- tests/scancode/test_cli.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/scancode/cli.py b/src/scancode/cli.py index 54eb46c974f..cb867df1d80 100644 --- a/src/scancode/cli.py +++ b/src/scancode/cli.py @@ -93,9 +93,9 @@ def print_examples(ctx, param, value): def print_version(ctx, param, value): if not value or ctx.resilient_parsing: return - click.echo('ScanCode version ' + scancode_config.__version__) - click.echo('ScanCode Output Format version ' + scancode_config.__output_format_version__) - click.echo('SPDX License list version ' + scancode_config.spdx_license_list_version) + click.echo(f'ScanCode version: {scancode_config.__version__}') + click.echo(f'ScanCode Output Format version: {scancode_config.__output_format_version__}') + click.echo(f'SPDX License list version: {scancode_config.spdx_license_list_version}') ctx.exit() diff --git a/tests/scancode/test_cli.py b/tests/scancode/test_cli.py index 5d4721e1fb5..a21aca79a58 100644 --- a/tests/scancode/test_cli.py +++ b/tests/scancode/test_cli.py @@ -929,3 +929,14 @@ def test_VirtualCodebase_output_with_from_json_is_same_as_original(): assert json.dumps(results , indent=2) == json.dumps(expected, indent=2) assert len(results_headers) == len(expected_headers) + 1 + +def test_getting_version_returns_valid_yaml(): + import saneyaml + import scancode_config + args = ['--version'] + result = run_scan_click(args) + assert saneyaml.load(result.output) == { + 'ScanCode version': f'{scancode_config.__version__}', + 'ScanCode Output Format version': f'{scancode_config.__output_format_version__}', + 'SPDX License list version': f'{scancode_config.spdx_license_list_version}' + }