Merge "in swagger operation parameter supports array type"
[releng.git] / utils / test / testapi / opnfv_testapi / tornado_swagger / swagger.py
index 3d21ede..6125c95 100644 (file)
@@ -6,15 +6,15 @@
 # which accompanies this distribution, and is available at
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
-import inspect
-from functools import wraps
 from HTMLParser import HTMLParser
+from functools import wraps
+import inspect
 
 import epydoc.markup
 import tornado.web
 
-from settings import default_settings, models
-from handlers import swagger_handlers
+from opnfv_testapi.tornado_swagger import handlers
+from opnfv_testapi.tornado_swagger import settings
 
 
 class EpytextParser(HTMLParser):
@@ -94,11 +94,18 @@ class DocParser(object):
 
     def _parse_type(self, **kwargs):
         arg = kwargs.get('arg', None)
-        body = self._get_body(**kwargs)
-        self.params.setdefault(arg, {}).update({
-            'name': arg,
-            'dataType': body
-        })
+        code = self._parse_epytext_para('code', **kwargs)
+        link = self._parse_epytext_para('link', **kwargs)
+        if code is None:
+            self.params.setdefault(arg, {}).update({
+                'name': arg,
+                'type': link
+            })
+        elif code == 'list':
+            self.params.setdefault(arg, {}).update({
+                'type': 'array',
+                'items': {'type': link}
+            })
 
     def _parse_in(self, **kwargs):
         arg = kwargs.get('arg', None)
@@ -204,7 +211,7 @@ class model(DocParser):
         if '__init__' in dir(cls):
             self._parse_args(cls.__init__)
         self.parse_docstring(inspect.getdoc(cls))
-        models.append(self)
+        settings.models.append(self)
 
     def _parse_args(self, func):
         argspec = inspect.getargspec(func)
@@ -276,15 +283,16 @@ class operation(DocParser):
 
 
 def docs(**opts):
-    default_settings.update(opts)
+    settings.docs_settings.update(opts)
 
 
 class Application(tornado.web.Application):
-    def __init__(self, handlers=None,
+    def __init__(self, app_handlers=None,
                  default_host="",
                  transforms=None,
                  **settings):
-        super(Application, self).__init__(swagger_handlers() + handlers,
-                                          default_host,
-                                          transforms,
-                                          **settings)
+        super(Application, self).__init__(
+            handlers.swagger_handlers() + app_handlers,
+            default_host,
+            transforms,
+            **settings)