summaryrefslogtreecommitdiffstats
path: root/testapi/testapi-client/testapiclient/client
diff options
context:
space:
mode:
Diffstat (limited to 'testapi/testapi-client/testapiclient/client')
-rw-r--r--testapi/testapi-client/testapiclient/client/__init__.py0
-rw-r--r--testapi/testapi-client/testapiclient/client/base.py23
-rw-r--r--testapi/testapi-client/testapiclient/client/deploy_results.py28
-rw-r--r--testapi/testapi-client/testapiclient/client/pods.py31
-rw-r--r--testapi/testapi-client/testapiclient/client/projects.py35
-rw-r--r--testapi/testapi-client/testapiclient/client/results.py28
-rw-r--r--testapi/testapi-client/testapiclient/client/scenarios.py177
-rw-r--r--testapi/testapi-client/testapiclient/client/testcases.py36
8 files changed, 358 insertions, 0 deletions
diff --git a/testapi/testapi-client/testapiclient/client/__init__.py b/testapi/testapi-client/testapiclient/client/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/client/__init__.py
diff --git a/testapi/testapi-client/testapiclient/client/base.py b/testapi/testapi-client/testapiclient/client/base.py
new file mode 100644
index 0000000..c45c9b7
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/client/base.py
@@ -0,0 +1,23 @@
+from testapiclient.utils import clientmanager
+from testapiclient.utils import urlparse
+
+
+class AuthOption(object):
+ def __init__(self, user=None, password=None):
+ self.u = user
+ self.p = password
+
+
+class Client(object):
+
+ resource = ''
+
+ def __init__(self, user=None, password=None, client_manager=None):
+ self.url = urlparse.resource_join(self.resource)
+ if client_manager:
+ self.clientmanager = client_manager
+ else:
+ self.clientmanager = clientmanager.ClientManager(
+ AuthOption(user, password))
+ if self.clientmanager.auth_required:
+ self.clientmanager.auth()
diff --git a/testapi/testapi-client/testapiclient/client/deploy_results.py b/testapi/testapi-client/testapiclient/client/deploy_results.py
new file mode 100644
index 0000000..b0724b0
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/client/deploy_results.py
@@ -0,0 +1,28 @@
+import json
+
+from testapiclient.client import base
+from testapiclient.utils import urlparse
+
+
+class DeployResultsClient(base.Client):
+ resource = 'deployresults'
+
+ def __init__(self, **kwargs):
+ super(DeployResultsClient, self).__init__(**kwargs)
+
+ def create(self, testcase_req):
+ return self.clientmanager.post(self.url, testcase_req)
+
+ def get(self, **queries):
+ if queries:
+ return json.dumps(
+ self.clientmanager.get(
+ urlparse.query_join(self.url, **queries))['deployresults'])
+ else:
+ return json.dumps(
+ self.clientmanager.get(self.url)['deployresults'])
+
+ def get_one(self, id):
+ return json.dumps(
+ self.clientmanager.get(
+ urlparse.path_join(self.url, id)))
diff --git a/testapi/testapi-client/testapiclient/client/pods.py b/testapi/testapi-client/testapiclient/client/pods.py
new file mode 100644
index 0000000..d08114f
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/client/pods.py
@@ -0,0 +1,31 @@
+import json
+
+from testapiclient.client import base
+from testapiclient.utils import urlparse
+
+
+class PodsClient(base.Client):
+ resource = 'pods'
+
+ def __init__(self, **kwargs):
+ super(PodsClient, self).__init__(**kwargs)
+
+ def create(self, pod_req):
+ return self.clientmanager.post(self.url, pod_req)
+
+ def get(self, **queries):
+ if queries:
+ return json.dumps(
+ self.clientmanager.get(
+ urlparse.query_join(self.url, **queries))['pods'])
+ else:
+ return json.dumps(
+ self.clientmanager.get(self.url)['pods'])
+
+ def get_one(self, name):
+ return json.dumps(self.clientmanager.get(
+ urlparse.path_join(self.url, name)))
+
+ def delete(self, name):
+ return self.clientmanager.delete(
+ urlparse.path_join(self.url, name))
diff --git a/testapi/testapi-client/testapiclient/client/projects.py b/testapi/testapi-client/testapiclient/client/projects.py
new file mode 100644
index 0000000..63d00fe
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/client/projects.py
@@ -0,0 +1,35 @@
+import json
+
+from testapiclient.client import base
+from testapiclient.utils import urlparse
+
+
+class ProjectsClient(base.Client):
+ resource = 'projects'
+
+ def __init__(self, **kwargs):
+ super(ProjectsClient, self).__init__(**kwargs)
+
+ def create(self, project_req):
+ return self.clientmanager.post(self.url, project_req)
+
+ def get(self, **queries):
+ if queries:
+ return json.dumps(
+ self.clientmanager.get(
+ urlparse.query_join(self.url, **queries))['projects'])
+ else:
+ return json.dumps(
+ self.clientmanager.get(self.url)['projects'])
+
+ def get_one(self, name):
+ return json.dumps(self.clientmanager.get(
+ urlparse.path_join(self.url, name)))
+
+ def delete(self, name):
+ return self.clientmanager.delete(
+ urlparse.path_join(self.url, name))
+
+ def update(self, name, project_req):
+ return self.clientmanager.put(
+ urlparse.path_join(self.url, name), project_req)
diff --git a/testapi/testapi-client/testapiclient/client/results.py b/testapi/testapi-client/testapiclient/client/results.py
new file mode 100644
index 0000000..7d9ad0e
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/client/results.py
@@ -0,0 +1,28 @@
+import json
+
+from testapiclient.client import base
+from testapiclient.utils import urlparse
+
+
+class ResultsClient(base.Client):
+ resource = 'results'
+
+ def __init__(self, **kwargs):
+ super(ResultsClient, self).__init__(**kwargs)
+
+ def create(self, testcase_req):
+ return self.clientmanager.post(self.url, testcase_req)
+
+ def get(self, **queries):
+ if queries:
+ return json.dumps(
+ self.clientmanager.get(
+ urlparse.query_join(self.url, **queries))['results'])
+ else:
+ return json.dumps(
+ self.clientmanager.get(self.url)['results'])
+
+ def get_one(self, id):
+ return json.dumps(
+ self.clientmanager.get(
+ urlparse.path_join(self.url, id)))
diff --git a/testapi/testapi-client/testapiclient/client/scenarios.py b/testapi/testapi-client/testapiclient/client/scenarios.py
new file mode 100644
index 0000000..e5ce2f1
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/client/scenarios.py
@@ -0,0 +1,177 @@
+import json
+
+from testapiclient.client import base
+from testapiclient.utils import urlparse
+
+
+class ScenariosClient(base.Client):
+ resource = 'scenarios'
+
+ def __init__(self, **kwargs):
+ super(ScenariosClient, self).__init__(**kwargs)
+
+ def create(self, scenario_req):
+ return self.clientmanager.post(self.url, scenario_req)
+
+ def get(self, **queries):
+ if queries:
+ return json.dumps(
+ self.clientmanager.get(
+ urlparse.query_join(self.url, **queries))['scenarios'])
+ else:
+ return json.dumps(
+ self.clientmanager.get(self.url)['scenarios'])
+
+ def get_one(self, scenario_name):
+ return json.dumps(
+ self.clientmanager.get(
+ urlparse.path_join(
+ self.url, scenario_name)))
+
+ def delete(self, scenario_name):
+ return self.clientmanager.delete(
+ urlparse.path_join(
+ self.url, scenario_name))
+
+ def update(self, scenario_name, scenario_req):
+ return self.clientmanager.put(
+ urlparse.path_join(
+ self.url, scenario_name), scenario_req)
+
+
+class InstallersClient(base.Client):
+ resource = 'scenarios/{}/installers'
+
+ def __init__(self, **kwargs):
+ super(InstallersClient, self).__init__(**kwargs)
+
+ def delete(self, scenario_name, name):
+ return self.clientmanager.delete(
+ self.url.format(scenario_name), [name])
+
+ def update(self, scenario_name, installer_req):
+ return self.clientmanager.put(
+ self.url.format(scenario_name), installer_req)
+
+ def create(self, scenario_name, installer_req):
+ return self.clientmanager.post(
+ self.url.format(scenario_name), installer_req)
+
+
+class VersionsClient(base.Client):
+ resource = 'scenarios/{}/versions'
+
+ def __init__(self, **kwargs):
+ super(VersionsClient, self).__init__(**kwargs)
+
+ def delete(self, scenario_name, installer, name):
+ queries = {'installer': installer}
+ return self.clientmanager.delete(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), name)
+
+ def update(self, scenario_name, installer, version_req):
+ queries = {'installer': installer}
+ return self.clientmanager.put(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), version_req)
+
+ def create(self, scenario_name, installer, version_req):
+ queries = {'installer': installer}
+ return self.clientmanager.post(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), version_req)
+
+
+class VersionsOwnerClient(base.Client):
+ resource = 'scenarios/{}/owner'
+
+ def __init__(self, **kwargs):
+ super(VersionsOwnerClient, self).__init__(**kwargs)
+
+ def update(self, scenario_name, installer, version, owner):
+ queries = {'installer': installer, 'version': version}
+ return self.clientmanager.put(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), owner)
+
+
+class ProjectsClient(base.Client):
+ resource = 'scenarios/{}/projects'
+
+ def __init__(self, **kwargs):
+ super(ProjectsClient, self).__init__(**kwargs)
+
+ def delete(self, scenario_name, installer, version, name):
+ queries = {'installer': installer, 'version': version}
+ return self.clientmanager.delete(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), name)
+
+ def update(self, scenario_name, installer, version, project_req):
+ queries = {'installer': installer, 'version': version}
+ return self.clientmanager.put(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), project_req)
+
+ def create(self, scenario_name, installer, version, project_req):
+ queries = {'installer': installer, 'version': version}
+ return self.clientmanager.post(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), project_req)
+
+
+class TrustIndicatorsClient(base.Client):
+ resource = 'scenarios/{}/trust_indicators'
+
+ def __init__(self, **kwargs):
+ super(TrustIndicatorsClient, self).__init__(**kwargs)
+
+ def create(self, scenario_name, installer, version, project, trust_in_req):
+ queries = {
+ 'installer': installer, 'version': version, 'project': project}
+ return self.clientmanager.post(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), trust_in_req)
+
+
+class ScoresClient(base.Client):
+ resource = 'scenarios/{}/scores'
+
+ def __init__(self, **kwargs):
+ super(ScoresClient, self).__init__(**kwargs)
+
+ def create(self, scenario_name, installer, version, project, scores_req):
+ queries = {
+ 'installer': installer, 'version': version, 'project': project}
+ return self.clientmanager.post(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), scores_req)
+
+
+class CustomsClient(base.Client):
+ resource = 'scenarios/{}/customs'
+
+ def __init__(self, **kwargs):
+ super(CustomsClient, self).__init__(**kwargs)
+
+ def delete(self, scenario_name, installer, version, project, customs):
+ queries = {
+ 'installer': installer, 'version': version, 'project': project}
+ return self.clientmanager.delete(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), customs)
+
+ def update(self, scenario_name, installer, version, project, customs):
+ queries = {
+ 'installer': installer, 'version': version, 'project': project}
+ return self.clientmanager.put(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), customs)
+
+ def create(self, scenario_name, installer, version, project, customs):
+ queries = {
+ 'installer': installer, 'version': version, 'project': project}
+ return self.clientmanager.post(
+ urlparse.query_join(
+ self.url.format(scenario_name), **queries), customs)
diff --git a/testapi/testapi-client/testapiclient/client/testcases.py b/testapi/testapi-client/testapiclient/client/testcases.py
new file mode 100644
index 0000000..bb2b6d3
--- /dev/null
+++ b/testapi/testapi-client/testapiclient/client/testcases.py
@@ -0,0 +1,36 @@
+import json
+
+from testapiclient.client import base
+from testapiclient.utils import urlparse
+
+
+class TestcasesClient(base.Client):
+ resource = 'projects/{}/cases'
+
+ def __init__(self, **kwargs):
+ super(TestcasesClient, self).__init__(**kwargs)
+
+ def create(self, project_name, testcase_req):
+ return self.clientmanager.post(
+ self.url.format(project_name), testcase_req)
+
+ def get(self, project_name):
+ return json.dumps(
+ self.clientmanager.get(
+ self.url.format(project_name))['testcases'])
+
+ def get_one(self, project_name, name):
+ return json.dumps(
+ self.clientmanager.get(
+ urlparse.path_join(
+ self.url.format(project_name), name)))
+
+ def delete(self, project_name, name):
+ return self.clientmanager.delete(
+ urlparse.path_join(
+ self.url.format(project_name), name))
+
+ def update(self, project_name, name, testcase_req):
+ return self.clientmanager.put(
+ urlparse.path_join(
+ self.url.format(project_name), name), testcase_req)