update projects in scenario
[releng.git] / utils / test / testapi / opnfv_testapi / resources / testcase_handlers.py
index 253aa66..9399326 100644 (file)
@@ -6,23 +6,23 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
-from opnfv_testapi.common.constants import HTTP_FORBIDDEN
-from opnfv_testapi.resources.handlers import GenericApiHandler
-from opnfv_testapi.resources.testcase_models import Testcase
+
+from opnfv_testapi.resources import handlers
+from opnfv_testapi.resources import testcase_models
 from opnfv_testapi.tornado_swagger import swagger
 
 
-class GenericTestcaseHandler(GenericApiHandler):
+class GenericTestcaseHandler(handlers.GenericApiHandler):
     def __init__(self, application, request, **kwargs):
         super(GenericTestcaseHandler, self).__init__(application,
                                                      request,
                                                      **kwargs)
         self.table = self.db_testcases
-        self.table_cls = Testcase
+        self.table_cls = testcase_models.Testcase
 
 
 class TestcaseCLHandler(GenericTestcaseHandler):
-    @swagger.operation(nickname="list-all")
+    @swagger.operation(nickname="listAllTestCases")
     def get(self, project_name):
         """
             @description: list all testcases of a project by project_name
@@ -30,11 +30,9 @@ class TestcaseCLHandler(GenericTestcaseHandler):
                          empty list is no testcase exist in this project
             @rtype: L{TestCases}
         """
-        query = dict()
-        query['project_name'] = project_name
-        self._list(query)
+        self._list(query={'project_name': project_name})
 
-    @swagger.operation(nickname="create")
+    @swagger.operation(nickname="createTestCase")
     def post(self, project_name):
         """
             @description: create a testcase of a project by project_name
@@ -47,32 +45,22 @@ class TestcaseCLHandler(GenericTestcaseHandler):
                         or testcase already exists in this project
             @raise 400: body or name not provided
         """
-        def p_query(data):
-            return {'name': data.project_name}
-
-        def tc_query(data):
-            return {
-                'project_name': data.project_name,
-                'name': data.name
-            }
-
-        def p_error(data):
-            message = 'Could not find project [{}]'.format(data.project_name)
-            return HTTP_FORBIDDEN, message
-
-        def tc_error(data):
-            message = '{} already exists as a testcase in project {}'\
-                .format(data.name, data.project_name)
-            return HTTP_FORBIDDEN, message
+        def project_query():
+            return {'name': project_name}
 
-        miss_checks = ['name']
-        db_checks = [(self.db_projects, True, p_query, p_error),
-                     (self.db_testcases, False, tc_query, tc_error)]
-        self._create(miss_checks, db_checks, project_name=project_name)
+        def testcase_query():
+            return {'project_name': project_name,
+                    'name': self.json_args.get('name')}
+        miss_fields = ['name']
+        carriers = [(self.db_projects, project_query)]
+        self._create(miss_fields=miss_fields,
+                     carriers=carriers,
+                     query=testcase_query,
+                     project_name=project_name)
 
 
 class TestcaseGURHandler(GenericTestcaseHandler):
-    @swagger.operation(nickname='get-one')
+    @swagger.operation(nickname='getTestCaseByName')
     def get(self, project_name, case_name):
         """
             @description: get a single testcase
@@ -84,9 +72,9 @@ class TestcaseGURHandler(GenericTestcaseHandler):
         query = dict()
         query['project_name'] = project_name
         query["name"] = case_name
-        self._get_one(query)
+        self._get_one(query=query)
 
-    @swagger.operation(nickname="update")
+    @swagger.operation(nickname="updateTestCaseByName")
     def put(self, project_name, case_name):
         """
             @description: update a single testcase
@@ -102,9 +90,9 @@ class TestcaseGURHandler(GenericTestcaseHandler):
         """
         query = {'project_name': project_name, 'name': case_name}
         db_keys = ['name', 'project_name']
-        self._update(querydb_keys)
+        self._update(query=query, db_keys=db_keys)
 
-    @swagger.operation(nickname='delete')
+    @swagger.operation(nickname='deleteTestCaseByName')
     def delete(self, project_name, case_name):
         """
             @description: delete a testcase by project_name and case_name
@@ -112,4 +100,4 @@ class TestcaseGURHandler(GenericTestcaseHandler):
             @raise 404: testcase not exist
         """
         query = {'project_name': project_name, 'name': case_name}
-        self._delete(query)
+        self._delete(query=query)