Plan module draft 47/27347/2
authorTaseer Ahmed <taseer94@gmail.com>
Sun, 22 Jan 2017 07:04:46 +0000 (12:04 +0500)
committerTaseer Ahmed <taseer94@gmail.com>
Sun, 22 Jan 2017 07:16:13 +0000 (12:16 +0500)
JIRA: QTIP-205
JIRA: QTIP-188

Change-Id: Ia871191851d25e1986834f8a7efdbeb8a8d87ec3
Signed-off-by: Taseer Ahmed <taseer94@gmail.com>
qtip/cli/commands/cmd_plan.py
tests/unit/cli/test_plan.py [new file with mode: 0644]

index 6f622e5..0c0a3c1 100644 (file)
@@ -1,4 +1,4 @@
-#############################################################################
+##############################################################################
 # Copyright (c) 2016 ZTE Corp and others.
 #
 # All rights reserved. This program and the accompanying materials
@@ -7,38 +7,39 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 
+
 import click
-from prettytable import PrettyTable
 
-from qtip.loader.plan import Plan
+from qtip.cli.entry import Context
+
+
+pass_context = click.make_pass_decorator(Context, ensure=False)
 
 
 @click.group()
-def cli():
+@pass_context
+def cli(ctx):
+    ''' Bechmarking Plan '''
     pass
 
 
-@cli.group()
-def plan_cmd():
+@cli.command('init', help='Initialize Environment')
+@click.option('--inst_type', prompt='Installer Type')
+@click.option('--inst_ip', prompt='Installer IP')
+@click.option('--ext_net', prompt='Openstack External Network')
+@pass_context
+def init(ctx, inst_type, inst_ip, ext_net):
     pass
 
 
-@plan_cmd.command('list', help='List the different TestPlans.')
-def list_all():
-    plans = Plan.list_all()
-    table = PrettyTable(["Testplans"])
-    table.align = 'l'
-    for plan in plans:
-        table.add_row([plan['name']])
-    click.echo(table)
+@cli.command('list', help='List the Plans')
+@pass_context
+def list(ctx):
+    pass
 
 
-@plan_cmd.command('show', help='Show details of specified TestPlan.')
+@cli.command('run', help='Execute a Plan')
 @click.argument('name')
-def show(name):
-    plan = Plan(name)
-    results = plan.content()
-    table = PrettyTable(["Name", "Description"])
-    table.align = 'l'
-    table.add_row([results['name'], results['description']])
-    click.echo(table)
+@pass_context
+def run(ctx, name):
+    pass
diff --git a/tests/unit/cli/test_plan.py b/tests/unit/cli/test_plan.py
new file mode 100644 (file)
index 0000000..3ce3766
--- /dev/null
@@ -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, ['plan', 'list'])
+    assert result.output == ''
+
+
+def test_run(runner):
+    result = runner.invoke(cli, ['plan', 'run', 'fake-plan'])
+    assert result.output == ''
+
+    result = runner.invoke(cli, ['plan', 'run'])
+    assert 'Missing argument "name".' in result.output