1 ##############################################################################
\r
2 # Copyright (c) 2015 Orange
\r
3 # guyrodrigue.koffi@orange.com / koffirodrigue@gmail.com
\r
4 # All rights reserved. This program and the accompanying materials
\r
5 # are made available under the terms of the Apache License, Version 2.0
\r
6 # which accompanies this distribution, and is available at
\r
7 # http://www.apache.org/licenses/LICENSE-2.0
\r
8 # feng.xiaowei@zte.com.cn mv Pod to pod_models.py 5-18-2016
\r
9 # feng.xiaowei@zte.com.cn add MetaCreateResponse/MetaGetResponse 5-18-2016
\r
10 # feng.xiaowei@zte.com.cn mv TestProject to project_models.py 5-19-2016
\r
11 # feng.xiaowei@zte.com.cn delete meta class 5-19-2016
\r
12 # feng.xiaowei@zte.com.cn add CreateResponse 5-19-2016
\r
13 # feng.xiaowei@zte.com.cn mv TestCase to testcase_models.py 5-20-2016
\r
14 # feng.xiaowei@zte.com.cn mv TestResut to result_models.py 5-23-2016
\r
15 # feng.xiaowei@zte.com.cn add ModelBase 12-20-2016
\r
16 ##############################################################################
\r
19 from opnfv_testapi.tornado_swagger import swagger
\r
22 class ModelBase(object):
\r
24 def _format(self, excludes):
\r
25 new_obj = copy.deepcopy(self)
\r
26 dicts = new_obj.__dict__
\r
27 for k in dicts.keys():
\r
31 if hasattr(dicts[k], 'format'):
\r
32 dicts[k] = dicts[k].format()
\r
33 elif isinstance(dicts[k], list):
\r
35 [hs.append(h.format() if hasattr(h, 'format') else str(h))
\r
38 elif not isinstance(dicts[k], (str, int, float, dict)):
\r
39 dicts[k] = str(dicts[k])
\r
43 return self._format(['_id'])
\r
45 def format_http(self):
\r
46 return self._format([])
\r
53 def from_dict(cls, a_dict):
\r
57 attr_parser = cls.attr_parser()
\r
59 for k, v in a_dict.iteritems():
\r
61 if isinstance(v, dict) and k in attr_parser:
\r
62 value = attr_parser[k].from_dict(v)
\r
63 elif isinstance(v, list) and k in attr_parser:
\r
66 value.append(attr_parser[k].from_dict(item))
\r
68 t.__setattr__(k, value)
\r
74 class CreateResponse(ModelBase):
\r
75 def __init__(self, href=''):
\r
80 class Versions(ModelBase):
\r
83 @ptype versions: C{list} of L{Version}
\r
87 self.versions = list()
\r
91 return {'versions': Version}
\r
95 class Version(ModelBase):
\r
96 def __init__(self, version=None, description=None):
\r
97 self.version = version
\r
98 self.description = description
\r