90b3f75e98af42e53869f1d7997d2ffe8e99c5b9
[releng.git] / utils / test / result_collection_api / resources / testcase_models.py
1 from tornado_swagger_ui.tornado_swagger import swagger
2
3 __author__ = '__serena__'
4
5
6 @swagger.model()
7 class TestcaseCreateRequest(object):
8     def __init__(self, name, url=None, description=None):
9         self.name = name
10         self.url = url
11         self.description = description
12
13     def format(self):
14         return {
15             "name": self.name,
16             "description": self.description,
17             "url": self.url,
18         }
19
20
21 @swagger.model()
22 class TestcaseUpdateRequest(object):
23     def __init__(self, name=None, description=None, project_name=None):
24         self.name = name
25         self.description = description
26         self.project_name = project_name
27
28     def format(self):
29         return {
30             "name": self.name,
31             "description": self.description,
32             "project_name": self.project_name,
33         }
34
35
36 @swagger.model()
37 class Testcase(object):
38     def __init__(self):
39         self._id = None
40         self.name = None
41         self.project_name = None
42         self.description = None
43         self.url = None
44         self.creation_date = None
45
46     @staticmethod
47     def from_dict(a_dict):
48
49         if a_dict is None:
50             return None
51
52         t = Testcase()
53         t._id = a_dict.get('_id')
54         t.project_name = a_dict.get('project_name')
55         t.creation_date = a_dict.get('creation_date')
56         t.name = a_dict.get('name')
57         t.description = a_dict.get('description')
58         t.url = a_dict.get('url')
59
60         return t
61
62     def format(self):
63         return {
64             "name": self.name,
65             "description": self.description,
66             "project_name": self.project_name,
67             "creation_date": str(self.creation_date),
68             "url": self.url
69         }
70
71     def format_http(self):
72         return {
73             "_id": str(self._id),
74             "name": self.name,
75             "project_name": self.project_name,
76             "description": self.description,
77             "creation_date": str(self.creation_date),
78             "url": self.url,
79         }
80
81
82 @swagger.model()
83 class Testcases(object):
84     """
85         @ptype testcases: C{list} of L{Testcase}
86     """
87     def __init__(self, testcases=list()):
88         self.testcases = testcases
89
90     @staticmethod
91     def from_dict(res_dict):
92         if res_dict is None:
93             return None
94
95         res = Testcases()
96         for testcase in res_dict.get('testcases'):
97             res.testcases.append(Testcase.from_dict(testcase))
98         return res