summaryrefslogtreecommitdiffstats
path: root/testapi/opnfv_testapi/models
diff options
context:
space:
mode:
authorSerenaFeng <feng.xiaowei@zte.com.cn>2018-01-03 14:24:24 +0800
committerSerenaFeng <feng.xiaowei@zte.com.cn>2018-01-04 16:48:48 +0800
commit4bef7e27562d23c0cbdd56adf1cdc419f55e6aa4 (patch)
tree46ff69898d4e4e51b6c692903ad5e59b8d7a1afa /testapi/opnfv_testapi/models
parent4b2507e9ffcf9be5246acb289fa5b042a69c2f35 (diff)
simplify test_results.py with eq() and templates/
Change-Id: Ibc5066f721b6b3343c2f8cb4ec0b9234960e9cb6 Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
Diffstat (limited to 'testapi/opnfv_testapi/models')
-rw-r--r--testapi/opnfv_testapi/models/result_models.py45
1 files changed, 21 insertions, 24 deletions
diff --git a/testapi/opnfv_testapi/models/result_models.py b/testapi/opnfv_testapi/models/result_models.py
index 97fda08..1dbe729 100644
--- a/testapi/opnfv_testapi/models/result_models.py
+++ b/testapi/opnfv_testapi/models/result_models.py
@@ -31,6 +31,14 @@ class TI(base_models.ModelBase):
self.current = current
self.histories = list()
+ def __eq__(self, other):
+ return (self.current == other.current and self._histories_eq(other))
+
+ def _histories_eq(self, other):
+ hs_equal = all(self.histories[i] == other.histories[i]
+ for i in range(len(self.histories)))
+ return len(self.histories) == len(other.histories) and hs_equal
+
@staticmethod
def attr_parser():
return {'histories': TIHistory}
@@ -72,6 +80,16 @@ class ResultCreateRequest(base_models.ModelBase):
self.public = public
self.trust_indicator = trust_indicator if trust_indicator else TI(0)
+ def __eq__(self, other):
+ simple_equal = all(getattr(self, k) == getattr(other, k)
+ for k in self.format().keys()
+ if k not in ['_id', 'trust_indicator'])
+ return simple_equal and self.trust_indicator == other.trust_indicator
+
+ @staticmethod
+ def attr_parser():
+ return {'trust_indicator': TI}
+
@swagger.model()
class ResultUpdateRequest(base_models.ModelBase):
@@ -84,35 +102,14 @@ class ResultUpdateRequest(base_models.ModelBase):
@swagger.model()
-class TestResult(base_models.ModelBase):
+class TestResult(ResultCreateRequest):
"""
@property trust_indicator: used for long duration test case
@ptype trust_indicator: L{TI}
"""
- def __init__(self, _id=None, case_name=None, project_name=None,
- pod_name=None, installer=None, version=None,
- start_date=None, stop_date=None, details=None,
- build_tag=None, scenario=None, criteria=None,
- user=None, public="true", trust_indicator=None):
+ def __init__(self, _id=None, **kwargs):
+ super(TestResult, self).__init__(**kwargs)
self._id = _id
- self.case_name = case_name
- self.project_name = project_name
- self.pod_name = pod_name
- self.installer = installer
- self.version = version
- self.start_date = start_date
- self.stop_date = stop_date
- self.details = details
- self.build_tag = build_tag
- self.scenario = scenario
- self.criteria = criteria
- self.user = user
- self.public = public
- self.trust_indicator = trust_indicator
-
- @staticmethod
- def attr_parser():
- return {'trust_indicator': TI}
@swagger.model()