update scenario and related unittest
[releng.git] / utils / test / testapi / opnfv_testapi / resources / scenario_models.py
1 import models
2 from opnfv_testapi.tornado_swagger import swagger
3
4
5 def list_default(value):
6     return value if value else list()
7
8
9 def dict_default(value):
10     return value if value else dict()
11
12
13 @swagger.model()
14 class ScenarioTI(models.ModelBase):
15     def __init__(self, date=None, status='silver'):
16         self.date = date
17         self.status = status
18
19
20 @swagger.model()
21 class ScenarioScore(models.ModelBase):
22     def __init__(self, date=None, score='0'):
23         self.date = date
24         self.score = score
25
26
27 @swagger.model()
28 class ScenarioProject(models.ModelBase):
29     """
30         @property customs:
31         @ptype customs: C{list} of L{string}
32         @property scores:
33         @ptype scores: C{list} of L{ScenarioScore}
34         @property trust_indicators:
35         @ptype trust_indicators: C{list} of L{ScenarioTI}
36     """
37     def __init__(self,
38                  project='',
39                  customs=None,
40                  scores=None,
41                  trust_indicators=None):
42         self.project = project
43         self.customs = list_default(customs)
44         self.scores = list_default(scores)
45         self.trust_indicators = list_default(trust_indicators)
46
47     @staticmethod
48     def attr_parser():
49         return {'scores': ScenarioScore,
50                 'trust_indicators': ScenarioTI}
51
52
53 @swagger.model()
54 class ScenarioVersion(models.ModelBase):
55     """
56         @property projects:
57         @ptype projects: C{list} of L{ScenarioProject}
58     """
59     def __init__(self, version=None, projects=None):
60         self.version = version
61         self.projects = list_default(projects)
62
63     @staticmethod
64     def attr_parser():
65         return {'projects': ScenarioProject}
66
67
68 @swagger.model()
69 class ScenarioInstaller(models.ModelBase):
70     """
71         @property versions:
72         @ptype versions: C{list} of L{ScenarioVersion}
73     """
74     def __init__(self, installer=None, versions=None):
75         self.installer = installer
76         self.versions = list_default(versions)
77
78     @staticmethod
79     def attr_parser():
80         return {'versions': ScenarioVersion}
81
82
83 @swagger.model()
84 class ScenarioCreateRequest(models.ModelBase):
85     """
86         @property installers:
87         @ptype installers: C{list} of L{ScenarioInstaller}
88     """
89     def __init__(self, name='', installers=None):
90         self.name = name
91         self.installers = list_default(installers)
92
93     @staticmethod
94     def attr_parser():
95         return {'installers': ScenarioInstaller}
96
97
98 @swagger.model()
99 class ScenarioUpdateRequest(models.ModelBase):
100     """
101         @property field: update field
102         @property op: add/delete/update
103         @property locate: information used to locate the field
104         @property term: new value
105     """
106     def __init__(self, field=None, op=None, locate=None, term=None):
107         self.field = field
108         self.op = op
109         self.locate = dict_default(locate)
110         self.term = dict_default(term)
111
112
113 @swagger.model()
114 class Scenario(models.ModelBase):
115     """
116         @property installers:
117         @ptype installers: C{list} of L{ScenarioInstaller}
118     """
119     def __init__(self, name='', create_date='', _id='', installers=None):
120         self.name = name
121         self._id = _id
122         self.creation_date = create_date
123         self.installers = list_default(installers)
124
125     @staticmethod
126     def attr_parser():
127         return {'installers': ScenarioInstaller}
128
129
130 @swagger.model()
131 class Scenarios(models.ModelBase):
132     """
133         @property scenarios:
134         @ptype scenarios: C{list} of L{Scenario}
135     """
136     def __init__(self):
137         self.scenarios = list()
138
139     @staticmethod
140     def attr_parser():
141         return {'scenarios': Scenario}