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