diff options
author | thuva4 <tharma.thuva@gmail.com> | 2018-03-23 12:32:13 +0530 |
---|---|---|
committer | thuva4 <tharma.thuva@gmail.com> | 2018-03-23 12:33:18 +0530 |
commit | 5b92656ee004e153e68198726e695ba7e9cfb29d (patch) | |
tree | 4fc08afe8d7f7eab0f1b96fc0f109f42403b3fd7 /testapi/testapi-client/testapiclient/cli | |
parent | bb4c8903e1a72a925f594207bc454d7b8a33f17e (diff) |
Add projects CRUD in testapiclient
implement interface to do CRUD operations
for projects in testapiclient
Tests are added
Change-Id: I777b684b0a48a81de4555aa77bef88fd19249458
Signed-off-by: thuva4 <tharma.thuva@gmail.com>
Diffstat (limited to 'testapi/testapi-client/testapiclient/cli')
-rw-r--r-- | testapi/testapi-client/testapiclient/cli/scenarios.py | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/testapi/testapi-client/testapiclient/cli/scenarios.py b/testapi/testapi-client/testapiclient/cli/scenarios.py index cb8f1f3..1e384d0 100644 --- a/testapi/testapi-client/testapiclient/cli/scenarios.py +++ b/testapi/testapi-client/testapiclient/cli/scenarios.py @@ -301,3 +301,92 @@ class VersionOwnerPut(command.Command): resources_url(parsed_args.scenario_name, 'owner'), ['installer', 'version'], parsed_args), parsed_args.owner) + + +class ProjectCreate(command.Command): + + def get_parser(self, prog_name): + parser = super(ProjectCreate, self).get_parser(prog_name) + parser.add_argument('--scenario-name', + type=str, + required=True, + help='Create project by scenario name') + parser.add_argument('--installer', + required=True, + help='Create project under installer name') + parser.add_argument('--version', + required=True, + help='Create project under version name') + parser.add_argument('project', + type=json.loads, + help='Project create request format :\n' + '\'[{ "project" (string),' + '"scores": (array[ScenarioScore]),' + '"trust_indicators": (array[ScenarioTI]),' + '"customs": (array[string]) }]\',\n') + return parser + + def take_action(self, parsed_args): + return self.app.client_manager.post( + urlparse.query_by( + resources_url(parsed_args.scenario_name, 'projects'), + ['installer', 'version'], + parsed_args), parsed_args.project) + + +class ProjectDelete(command.Command): + + def get_parser(self, prog_name): + parser = super(ProjectDelete, self).get_parser(prog_name) + parser.add_argument('--scenario-name', + required=True, + type=str, + help='Delete projects by scenario name') + parser.add_argument('--installer', + required=True, + help='Delete projects under installer name') + parser.add_argument('--version', + required=True, + help='Delete projects under version name') + parser.add_argument('name', + nargs='+', + help='Delete projects by name') + return parser + + def take_action(self, parsed_args): + return self.app.client_manager.delete( + urlparse.query_by( + resources_url(parsed_args.scenario_name, 'projects'), + ['installer', 'version'], + parsed_args), parsed_args.name) + + +class ProjectPut(command.Command): + + def get_parser(self, prog_name): + parser = super(ProjectPut, self).get_parser(prog_name) + parser.add_argument('--scenario-name', + type=str, + required=True, + help='Update project by scenario name') + parser.add_argument('--installer', + required=True, + help='Update project under installer name') + parser.add_argument('--version', + required=True, + help='Update project under version name') + parser.add_argument('project', + type=json.loads, + help='Project update request format :\n' + '\'[{ "project" (string),' + '"scores": (array[ScenarioScore]),' + '"trust_indicators": (array[ScenarioTI]),' + '"customs": (array[string]) }]\',\n') + return parser + + def take_action(self, parsed_args): + return self.app.client_manager.put( + urlparse.query_by( + resources_url(parsed_args.scenario_name, 'projects'), + ['installer', 'version'], + parsed_args), parsed_args.project) |