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