summaryrefslogtreecommitdiffstats
path: root/testapi/testapi-client/testapiclient/cli
diff options
context:
space:
mode:
authorthuva4 <tharma.thuva@gmail.com>2018-03-23 12:32:13 +0530
committerthuva4 <tharma.thuva@gmail.com>2018-03-23 12:33:18 +0530
commit5b92656ee004e153e68198726e695ba7e9cfb29d (patch)
tree4fc08afe8d7f7eab0f1b96fc0f109f42403b3fd7 /testapi/testapi-client/testapiclient/cli
parentbb4c8903e1a72a925f594207bc454d7b8a33f17e (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.py89
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)