f3867649fd3dd03d0b7adccd8f1ef43acdf308bf
[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     """ Describes a test case"""
39
40     def __init__(self):
41         self._id = None
42         self.name = None
43         self.project_name = None
44         self.description = None
45         self.url = None
46         self.creation_date = None
47
48     @staticmethod
49     def from_dict(a_dict):
50
51         if a_dict is None:
52             return None
53
54         t = Testcase()
55         t._id = a_dict.get('_id')
56         t.project_name = a_dict.get('project_name')
57         t.creation_date = a_dict.get('creation_date')
58         t.name = a_dict.get('name')
59         t.description = a_dict.get('description')
60         t.url = a_dict.get('url')
61
62         return t
63
64     def format(self):
65         return {
66             "name": self.name,
67             "description": self.description,
68             "project_name": self.project_name,
69             "creation_date": str(self.creation_date),
70             "url": self.url
71         }
72
73     def format_http(self):
74         return {
75             "_id": str(self._id),
76             "name": self.name,
77             "project_name": self.project_name,
78             "description": self.description,
79             "creation_date": str(self.creation_date),
80             "url": self.url,
81         }
82
83
84 @swagger.model()
85 class Testcases(object):
86     """
87         @ptype testcases: C{list} of L{Testcase}
88     """
89     def __init__(self, testcases=list()):
90         self.testcases = testcases
91
92     @staticmethod
93     def from_dict(res_dict):
94         if res_dict is None:
95             return None
96
97         res = Testcases()
98         for testcase in res_dict.get('testcases'):
99             res.testcases.append(Testcase.from_dict(testcase))
100         return res