diff options
-rw-r--r-- | qtip/cli/commands/cmd_qpi.py | 35 | ||||
-rw-r--r-- | qtip/cli/commands/cmd_suite.py | 54 | ||||
-rw-r--r-- | tests/unit/cli/test_qpi.py | 31 |
3 files changed, 66 insertions, 54 deletions
diff --git a/qtip/cli/commands/cmd_qpi.py b/qtip/cli/commands/cmd_qpi.py new file mode 100644 index 00000000..f33f0104 --- /dev/null +++ b/qtip/cli/commands/cmd_qpi.py @@ -0,0 +1,35 @@ +############################################################################## +# Copyright (c) 2016 ZTE Corp and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + + +import click + +from qtip.cli.entry import Context + +pass_context = click.make_pass_decorator(Context, ensure=False) + + +@click.group() +@pass_context +def cli(ctx): + ''' Collection of performance tests ''' + pass + + +@cli.command('list', help='List all the QPI specs') +@pass_context +def cmd_list(ctx): + pass + + +@cli.command('run', help='Run performance tests for the specified QPI') +@click.argument('name') +@pass_context +def run(ctx, name): + pass diff --git a/qtip/cli/commands/cmd_suite.py b/qtip/cli/commands/cmd_suite.py deleted file mode 100644 index 45c739df..00000000 --- a/qtip/cli/commands/cmd_suite.py +++ /dev/null @@ -1,54 +0,0 @@ -############################################################################## -# Copyright (c) 2016 ZTE Corp and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -from prettytable import PrettyTable -import os -import click -from qtip.cli import helper - - -class Suite: - - def __init__(self): - self.path = os.path.join(helper.fetch_root(), 'suite') - - def list(self): - table = PrettyTable(["Name"]) - table.align = 'l' - suites = os.listdir(self.path) - for suite in suites: - table.add_row([suite]) - click.echo(table) - - def run(self): - print("Run a suite") - - -@click.group() -def cli(): - pass - - -@cli.group() -@click.pass_context -def suite(ctx): - pass - - -_suite = Suite() - - -@suite.command("list", help="Lists all the available suites") -def list(): - _suite.list() - - -@suite.command("run", help="Execute one complete suite") -def execute(): - _suite.run() diff --git a/tests/unit/cli/test_qpi.py b/tests/unit/cli/test_qpi.py new file mode 100644 index 00000000..992c85d7 --- /dev/null +++ b/tests/unit/cli/test_qpi.py @@ -0,0 +1,31 @@ +############################################################### +# Copyright (c) 2016 ZTE Corp and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +import pytest +from click.testing import CliRunner + +from qtip.cli.entry import cli + + +@pytest.fixture() +def runner(): + return CliRunner() + + +def test_list(runner): + result = runner.invoke(cli, ['qpi', 'list']) + assert result.output == '' + + +def test_run(runner): + result = runner.invoke(cli, ['qpi', 'run', 'fake-qpi']) + assert result.output == '' + + result = runner.invoke(cli, ['qpi', 'run']) + assert 'Missing argument "name".' in result.output |