remove test_cases info in project description
[releng.git] / utils / test / result_collection_api / resources / models.py
1 ##############################################################################
2 # Copyright (c) 2015 Orange
3 # guyrodrigue.koffi@orange.com / koffirodrigue@gmail.com
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
9
10
11 class Pod:
12     """ describes a POD platform """
13     def __init__(self):
14         self._id = ""
15         self.name = ""
16         self.creation_date = ""
17         self.mode = ""
18         self.details = ""
19
20     @staticmethod
21     def pod_from_dict(pod_dict):
22         if pod_dict is None:
23             return None
24
25         p = Pod()
26         p._id = pod_dict.get('_id')
27         p.creation_date = str(pod_dict.get('creation_date'))
28         p.name = pod_dict.get('name')
29         p.mode = pod_dict.get('mode')
30         p.details = pod_dict.get('details')
31         return p
32
33     def format(self):
34         return {
35             "name": self.name,
36             "mode": self.mode,
37             "details": self.details,
38             "creation_date": str(self.creation_date),
39         }
40
41     def format_http(self):
42         return {
43             "_id": str(self._id),
44             "name": self.name,
45             "mode": self.mode,
46             "details": self.details,
47             "creation_date": str(self.creation_date),
48         }
49
50
51 class TestProject:
52     """ Describes a test project"""
53
54     def __init__(self):
55         self._id = None
56         self.name = None
57         self.description = None
58         self.creation_date = None
59
60     @staticmethod
61     def testproject_from_dict(testproject_dict):
62
63         if testproject_dict is None:
64             return None
65
66         t = TestProject()
67         t._id = testproject_dict.get('_id')
68         t.creation_date = testproject_dict.get('creation_date')
69         t.name = testproject_dict.get('name')
70         t.description = testproject_dict.get('description')
71
72         return t
73
74     def format(self):
75         return {
76             "name": self.name,
77             "description": self.description,
78             "creation_date": str(self.creation_date)
79         }
80
81     def format_http(self, test_cases=0):
82         return {
83             "_id": str(self._id),
84             "name": self.name,
85             "description": self.description,
86             "creation_date": str(self.creation_date),
87         }
88
89
90 class TestCase:
91     """ Describes a test case"""
92
93     def __init__(self):
94         self._id = None
95         self.name = None
96         self.project_name = None
97         self.description = None
98         self.url = None
99         self.creation_date = None
100
101     @staticmethod
102     def test_case_from_dict(testcase_dict):
103
104         if testcase_dict is None:
105             return None
106
107         t = TestCase()
108         t._id = testcase_dict.get('_id')
109         t.project_name = testcase_dict.get('project_name')
110         t.creation_date = testcase_dict.get('creation_date')
111         t.name = testcase_dict.get('name')
112         t.description = testcase_dict.get('description')
113         t.url = testcase_dict.get('url')
114
115         return t
116
117     def format(self):
118         return {
119             "name": self.name,
120             "description": self.description,
121             "project_name": self.project_name,
122             "creation_date": str(self.creation_date),
123             "url": self.url
124         }
125
126     def format_http(self, test_project=None):
127         res = {
128             "_id": str(self._id),
129             "name": self.name,
130             "description": self.description,
131             "creation_date": str(self.creation_date),
132             "url": self.url,
133         }
134         if test_project is not None:
135             res["test_project"] = test_project
136
137         return res
138
139
140 class TestResult:
141     """ Describes a test result"""
142
143     def __init__(self):
144         self._id = None
145         self.case_name = None
146         self.project_name = None
147         self.pod_name = None
148         self.installer = None
149         self.version = None
150         self.description = None
151         self.creation_date = None
152         self.details = None
153
154     @staticmethod
155     def test_result_from_dict(test_result_dict):
156
157         if test_result_dict is None:
158             return None
159
160         t = TestResult()
161         t._id = test_result_dict.get('_id')
162         t.case_name = test_result_dict.get('case_name')
163         t.pod_name = test_result_dict.get('pod_name')
164         t.project_name = test_result_dict.get('project_name')
165         t.description = test_result_dict.get('description')
166         t.creation_date = str(test_result_dict.get('creation_date'))
167         t.details = test_result_dict.get('details')
168         t.version = test_result_dict.get('version')
169         t.installer = test_result_dict.get('installer')
170
171         return t
172
173     def format(self):
174         return {
175             "case_name": self.case_name,
176             "project_name": self.project_name,
177             "pod_name": self.pod_name,
178             "description": self.description,
179             "creation_date": str(self.creation_date),
180             "version": self.version,
181             "installer": self.installer,
182             "details": self.details,
183         }
184
185     def format_http(self):
186         return {
187             "_id": str(self._id),
188             "case_name": self.case_name,
189             "project_name": self.project_name,
190             "pod_name": self.pod_name,
191             "description": self.description,
192             "creation_date": str(self.creation_date),
193             "version": self.version,
194             "installer": self.installer,
195             "details": self.details,
196         }