0ed705f0f673e8442560ab078aa9867c2b74049c
[releng.git] / utils / test / testapi / opnfv_testapi / resources / testcase_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 from opnfv_testapi.tornado_swagger import swagger
10
11
12 @swagger.model()
13 class TestcaseCreateRequest(object):
14     def __init__(self, name, url=None, description=None,
15                  tier=None, ci_loop=None, criteria=None,
16                  blocking=None, dependencies=None, run=None,
17                  domains=None, tags=None, version=None):
18         self.name = name
19         self.url = url
20         self.description = description
21         self.tier = tier
22         self.ci_loop = ci_loop
23         self.criteria = criteria
24         self.blocking = blocking
25         self.dependencies = dependencies
26         self.run = run
27         self.domains = domains
28         self.tags = tags
29         self.version = version
30         self.trust = "Silver"
31
32     def format(self):
33         return {
34             "name": self.name,
35             "description": self.description,
36             "url": self.url,
37         }
38
39
40 @swagger.model()
41 class TestcaseUpdateRequest(object):
42     def __init__(self, name=None, description=None, project_name=None,
43                  tier=None, ci_loop=None, criteria=None,
44                  blocking=None, dependencies=None, run=None,
45                  domains=None, tags=None, version=None, trust=None):
46         self.name = name
47         self.description = description
48         self.project_name = project_name
49         self.tier = tier
50         self.ci_loop = ci_loop
51         self.criteria = criteria
52         self.blocking = blocking
53         self.dependencies = dependencies
54         self.run = run
55         self.domains = domains
56         self.tags = tags
57         self.version = version
58         self.trust = trust
59
60     def format(self):
61         return {
62             "name": self.name,
63             "description": self.description,
64             "project_name": self.project_name,
65             "tier": self.tier,
66             "ci_loop": self.ci_loop,
67             "criteria": self.criteria,
68             "blocking": self.blocking,
69             "dependencies": self.dependencies,
70             "run": self.run,
71             "domains": self.domains,
72             "tags": self.tags,
73             "version": self.version,
74             "trust": self.trust
75         }
76
77
78 @swagger.model()
79 class Testcase(object):
80     def __init__(self, _id=None, name=None, project_name=None,
81                  description=None, url=None, creation_date=None,
82                  tier=None, ci_loop=None, criteria=None,
83                  blocking=None, dependencies=None, run=None,
84                  domains=None, tags=None, version=None,
85                  trust=None):
86         self._id = None
87         self.name = None
88         self.project_name = None
89         self.description = None
90         self.url = None
91         self.creation_date = None
92         self.tier=None
93         self.ci_loop=None
94         self.criteria=None
95         self.blocking=None
96         self.dependencies=None
97         self.run=None
98         self.domains=None
99         self.tags=None
100         self.version=None
101         self.trust=None
102
103     @staticmethod
104     def from_dict(a_dict):
105
106         if a_dict is None:
107             return None
108
109         t = Testcase()
110         t._id = a_dict.get('_id')
111         t.project_name = a_dict.get('project_name')
112         t.creation_date = a_dict.get('creation_date')
113         t.name = a_dict.get('name')
114         t.description = a_dict.get('description')
115         t.url = a_dict.get('url')
116         t.tier = a_dict.get('tier')
117         t.ci_loop = a_dict.get('ci_loop')
118         t.criteria = a_dict.get('criteria')
119         t.blocking = a_dict.get('blocking')
120         t.dependencies = a_dict.get('dependencies')
121         t.run = a_dict.get('run')
122         t.domains = a_dict.get('domains')
123         t.tags = a_dict.get('tags')
124         t.version = a_dict.get('version')
125         t.trust = a_dict.get('trust')
126
127         return t
128
129     def format(self):
130         return {
131             "name": self.name,
132             "description": self.description,
133             "project_name": self.project_name,
134             "creation_date": str(self.creation_date),
135             "url": self.url,
136             "tier": self.tier,
137             "ci_loop": self.ci_loop,
138             "criteria": self.criteria,
139             "blocking": self.blocking,
140             "dependencies": self.dependencies,
141             "run": self.run,
142             "domains": self.domains,
143             "tags": self.tags,
144             "version": self.version,
145             "trust": self.trust
146         }
147
148     def format_http(self):
149         return {
150             "_id": str(self._id),
151             "name": self.name,
152             "project_name": self.project_name,
153             "description": self.description,
154             "creation_date": str(self.creation_date),
155             "url": self.url,
156             "tier": self.tier,
157             "ci_loop": self.ci_loop,
158             "criteria": self.criteria,
159             "blocking": self.blocking,
160             "dependencies": self.dependencies,
161             "run": self.run,
162             "domains": self.domains,
163             "tags": self.tags,
164             "version": self.version,
165             "trust": self.trust
166         }
167
168
169 @swagger.model()
170 class Testcases(object):
171     """
172         @property testcases:
173         @ptype testcases: C{list} of L{Testcase}
174     """
175     def __init__(self):
176         self.testcases = list()
177
178     @staticmethod
179     def from_dict(res_dict):
180         if res_dict is None:
181             return None
182
183         res = Testcases()
184         for testcase in res_dict.get('testcases'):
185             res.testcases.append(Testcase.from_dict(testcase))
186         return res