Merge "Allow Asynchronous Apex Builds"
[releng.git] / utils / test / testapi / opnfv_testapi / resources / result_models.py
index f73f5c6..62a6dac 100644 (file)
@@ -6,11 +6,12 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
+from opnfv_testapi.resources import models
 from opnfv_testapi.tornado_swagger import swagger
 
 
 @swagger.model()
-class TIHistory(object):
+class TIHistory(models.ModelBase):
     """
         @ptype step: L{float}
     """
@@ -18,22 +19,9 @@ class TIHistory(object):
         self.date = date
         self.step = step
 
-    def format(self):
-        return {
-            "date": self.date,
-            "step": self.step
-        }
-
-    @staticmethod
-    def from_dict(a_dict):
-        if a_dict is None:
-            return None
-
-        return TIHistory(a_dict.get('date'), a_dict.get('step'))
-
 
 @swagger.model()
-class TI(object):
+class TI(models.ModelBase):
     """
         @property histories: trust_indicator update histories
         @ptype histories: C{list} of L{TIHistory}
@@ -43,31 +31,13 @@ class TI(object):
         self.current = current
         self.histories = list()
 
-    def format(self):
-        hs = []
-        for h in self.histories:
-            hs.append(h.format())
-
-        return {
-            "current": self.current,
-            "histories": hs
-        }
-
     @staticmethod
-    def from_dict(a_dict):
-        t = TI()
-        if a_dict:
-            t.current = a_dict.get('current')
-            if 'histories' in a_dict.keys():
-                for history in a_dict.get('histories', None):
-                    t.histories.append(TIHistory.from_dict(history))
-            else:
-                t.histories = []
-        return t
+    def attr_parser():
+        return {'histories': TIHistory}
 
 
 @swagger.model()
-class ResultCreateRequest(object):
+class ResultCreateRequest(models.ModelBase):
     """
         @property trust_indicator:
         @ptype trust_indicator: L{TI}
@@ -98,25 +68,9 @@ class ResultCreateRequest(object):
         self.criteria = criteria
         self.trust_indicator = trust_indicator if trust_indicator else TI(0)
 
-    def format(self):
-        return {
-            "pod_name": self.pod_name,
-            "project_name": self.project_name,
-            "case_name": self.case_name,
-            "installer": self.installer,
-            "version": self.version,
-            "start_date": self.start_date,
-            "stop_date": self.stop_date,
-            "details": self.details,
-            "build_tag": self.build_tag,
-            "scenario": self.scenario,
-            "criteria": self.criteria,
-            "trust_indicator": self.trust_indicator.format()
-        }
-
 
 @swagger.model()
-class ResultUpdateRequest(object):
+class ResultUpdateRequest(models.ModelBase):
     """
         @property trust_indicator:
         @ptype trust_indicator: L{TI}
@@ -124,14 +78,9 @@ class ResultUpdateRequest(object):
     def __init__(self, trust_indicator=None):
         self.trust_indicator = trust_indicator
 
-    def format(self):
-        return {
-            "trust_indicator": self.trust_indicator.format(),
-        }
-
 
 @swagger.model()
-class TestResult(object):
+class TestResult(models.ModelBase):
     """
         @property trust_indicator: used for long duration test case
         @ptype trust_indicator: L{TI}
@@ -156,63 +105,12 @@ class TestResult(object):
         self.trust_indicator = trust_indicator
 
     @staticmethod
-    def from_dict(a_dict):
-
-        if a_dict is None:
-            return None
-
-        t = TestResult()
-        t._id = a_dict.get('_id')
-        t.case_name = a_dict.get('case_name')
-        t.pod_name = a_dict.get('pod_name')
-        t.project_name = a_dict.get('project_name')
-        t.start_date = str(a_dict.get('start_date'))
-        t.stop_date = str(a_dict.get('stop_date'))
-        t.details = a_dict.get('details')
-        t.version = a_dict.get('version')
-        t.installer = a_dict.get('installer')
-        t.build_tag = a_dict.get('build_tag')
-        t.scenario = a_dict.get('scenario')
-        t.criteria = a_dict.get('criteria')
-        t.trust_indicator = TI.from_dict(a_dict.get('trust_indicator'))
-        return t
-
-    def format(self):
-        return {
-            "case_name": self.case_name,
-            "project_name": self.project_name,
-            "pod_name": self.pod_name,
-            "start_date": str(self.start_date),
-            "stop_date": str(self.stop_date),
-            "version": self.version,
-            "installer": self.installer,
-            "details": self.details,
-            "build_tag": self.build_tag,
-            "scenario": self.scenario,
-            "criteria": self.criteria,
-            "trust_indicator": self.trust_indicator.format()
-        }
-
-    def format_http(self):
-        return {
-            "_id": str(self._id),
-            "case_name": self.case_name,
-            "project_name": self.project_name,
-            "pod_name": self.pod_name,
-            "start_date": str(self.start_date),
-            "stop_date": str(self.stop_date),
-            "version": self.version,
-            "installer": self.installer,
-            "details": self.details,
-            "build_tag": self.build_tag,
-            "scenario": self.scenario,
-            "criteria": self.criteria,
-            "trust_indicator": self.trust_indicator.format()
-        }
+    def attr_parser():
+        return {'trust_indicator': TI}
 
 
 @swagger.model()
-class TestResults(object):
+class TestResults(models.ModelBase):
     """
         @property results:
         @ptype results: C{list} of L{TestResult}
@@ -221,11 +119,5 @@ class TestResults(object):
         self.results = list()
 
     @staticmethod
-    def from_dict(a_dict):
-        if a_dict is None:
-            return None
-
-        res = TestResults()
-        for result in a_dict.get('results'):
-            res.results.append(TestResult.from_dict(result))
-        return res
+    def attr_parser():
+        return {'results': TestResult}