From 631a09b30096f02da48c6bb663bcbc777d742c06 Mon Sep 17 00:00:00 2001 From: Thomas Duval Date: Wed, 10 Aug 2016 09:23:43 +0200 Subject: Add self attribute in test command to allow the execution of all internal tests (and update some test execution). Change-Id: I3a35f662e51c03a94b53b8735085a4dbe8d236d5 --- moonclient/moonclient/shell.py | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'moonclient/moonclient/shell.py') diff --git a/moonclient/moonclient/shell.py b/moonclient/moonclient/shell.py index fa675dd9..f3d87ba3 100644 --- a/moonclient/moonclient/shell.py +++ b/moonclient/moonclient/shell.py @@ -11,6 +11,42 @@ import os from cliff.app import App from cliff.commandmanager import CommandManager +from cliff.formatters.base import ListFormatter, SingleFormatter + + +class _JSONFormatter(ListFormatter, SingleFormatter): + + def add_argument_group(self, parser): + group = parser.add_argument_group(title='json formatter') + group.add_argument( + '--noindent', + action='store_true', + dest='noindent', + help='whether to disable indenting the JSON' + ) + group.add_argument( + '--projectname', + help='Set the project name' + ) + + def emit_list(self, column_names, data, stdout, parsed_args): + items = [] + import time + for item in data: + element = dict(zip(column_names, item)) + element["project_name"] = parsed_args.projectname + element["name"] = element.pop("test_name") + element["url"] = "" + element["_id"] = "" + element["creation_date"] = time.strftime("%Y-%m-%d %H:%M:%S") + items.append(element) + indent = None if parsed_args.noindent else 2 + json.dump({"testcases": items}, stdout, indent=indent) + + def emit_one(self, column_names, data, stdout, parsed_args): + one = dict(zip(column_names, data)) + indent = None if parsed_args.noindent else 2 + json.dump(one, stdout, indent=indent) def get_env_creds(admin_token=False): @@ -70,7 +106,7 @@ class MoonClient(App): def __init__(self): super(MoonClient, self).__init__( description='Moon Python Client', - version='0.1', + version='0.2.0', command_manager=CommandManager('moon.client'), ) creds = get_env_creds() @@ -230,6 +266,8 @@ class MoonClient(App): data = self.get_url("/v3/auth/tokens", post_data=self.post) if "token" not in data: raise Exception("Authentication problem ({})".format(data)) + from cliff.formatters.json_format import JSONFormatter + JSONFormatter = _JSONFormatter def prepare_to_run_command(self, cmd): self.log.debug('prepare_to_run_command %s', cmd.__class__.__name__) @@ -238,6 +276,7 @@ class MoonClient(App): self.log.debug('clean_up %s', cmd.__class__.__name__) if err: self.log.debug('got an error: %s', err) + self.log.debug("result: {}".format(result)) def main(argv=sys.argv[1:]): -- cgit 1.2.3-korg