eliminate flake8 violation in testAPI except dashboard dir 89/14689/2
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Thu, 26 May 2016 06:30:24 +0000 (14:30 +0800)
committerSerenaFeng <feng.xiaowei@zte.com.cn>
Thu, 26 May 2016 07:22:48 +0000 (15:22 +0800)
JIRA: FUNCTEST-262

Change-Id: Ib77bb080111392b8e3248c5e6152f55c12b8c67c
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
utils/test/result_collection_api/tests/unit/test_pod.py
utils/test/result_collection_api/tornado_swagger_ui/__init__.py
utils/test/result_collection_api/tornado_swagger_ui/example/basic.py
utils/test/result_collection_api/tornado_swagger_ui/setup.py
utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/__init__.py
utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/handlers.py
utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/settings.py
utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/swagger.py
utils/test/result_collection_api/tornado_swagger_ui/tornado_swagger/views.py

index b6adc25..958a38f 100644 (file)
@@ -9,7 +9,8 @@ from common.constants import HTTP_OK, HTTP_BAD_REQUEST, \
 class TestPodBase(TestBase):
     def setUp(self):
         super(TestPodBase, self).setUp()
-        self.req_d = PodCreateRequest('zte-1', 'virtual', 'zte pod 1','ci-pod')
+        self.req_d = PodCreateRequest('zte-1', 'virtual',
+                                      'zte pod 1', 'ci-pod')
         self.req_e = PodCreateRequest('zte-2', 'metal', 'zte pod 2')
         self.get_res = Pod
         self.list_res = Pods
@@ -21,7 +22,7 @@ class TestPodBase(TestBase):
         self.assertEqual(pod.name, req.name)
         self.assertEqual(pod.mode, req.mode)
         self.assertEqual(pod.details, req.details)
-        self.assertEqual(pod.role, req.role)        
+        self.assertEqual(pod.role, req.role)
         self.assertIsNotNone(pod.creation_date)
         self.assertIsNotNone(pod._id)
 
index 1731bfd..93ff00b 100644 (file)
@@ -22,15 +22,21 @@ class PropertySubclass:
 class Item:
     """
         @description:
-            This is an example of a model class that has parameters in its constructor
-            and the fields in the swagger spec are derived from the parameters to __init__.
+            This is an example of a model class that has parameters in its
+            constructor and the fields in the swagger spec are derived from
+            the parameters to __init__.
         @notes:
-            In this case we would have property1, name as required parameters and property3 as optional parameter.
+            In this case we would have property1, name as required parameters
+            and property3 as optional parameter.
         @property property3: Item description
         @ptype property3: L{PropertySubclass}
         @ptype property4: C{list} of L{PropertySubclass}
     """
-    def __init__(self, property1, property2=None, property3=None, property4=None):
+    def __init__(self,
+                 property1,
+                 property2=None,
+                 property3=None,
+                 property4=None):
         self.property1 = property1
         self.property2 = property2
         self.property3 = property3
@@ -78,17 +84,17 @@ class GenericApiHandler(RequestHandler):
         pass
 
     def prepare(self):
-        if not (self.request.method == "GET" or self.request.method == "DELETE"):
-            if self.request.headers.get("Content-Type") is not None:
-                if self.request.headers["Content-Type"].startswith(DEFAULT_REPRESENTATION):
+        if self.request.method != "GET" and self.request.method != "DELETE":
+            self.json_args = None
+            content_type = self.request.headers.get("Content-Type")
+            if content_type is not None:
+                if content_type.startswith(DEFAULT_REPRESENTATION):
                     try:
                         self.json_args = json.loads(self.request.body)
                     except (ValueError, KeyError, TypeError) as error:
                         raise HTTPError(HTTP_BAD_REQUEST,
                                         "Bad Json format [{}]".
                                         format(error))
-                else:
-                    self.json_args = None
 
     def finish_request(self, json_object):
         self.write(json.dumps(json_object))
@@ -138,7 +144,8 @@ class ItemHandler(GenericApiHandler):
             @notes:
                 get a item,
 
-                This will be added to the Implementation Notes.It lets you put very long text in your api.
+                This will be added to the Implementation Notes.
+                It lets you put very long text in your api.
         """
         self.finish_request(items[arg].format_http())
 
@@ -148,8 +155,6 @@ class ItemHandler(GenericApiHandler):
             @description: delete a item
             @notes:
                 delete a item in items
-
-                This will be added to the Implementation Notes.It lets you put very long text in your api.
         """
         del items[arg]
         self.finish_request("success")
@@ -161,8 +166,7 @@ class ItemOptionParamHandler(GenericApiHandler):
         """
         @return 200: case is created
         """
-        print("ProjectHandler.post: %s -- %s -- %s" % (arg1, arg2, self.request.full_url()))
-        fs = open("/home/swagger/tornado-rest-swagger/%s/%s" % (arg1, arg2), "wb")
+        fs = open("/home/%s/%s" % (arg1, arg2), "wb")
         fs.write(self.request.body)
         self.write("success")
 
@@ -193,7 +197,7 @@ class ItemQueryHandler(GenericApiHandler):
                     res.append(value.format_http())
                 elif value.property2 == property2:
                     res.append(value.format_http())
-        elif items.has_key(property1):
+        elif property1 in items:
             if items.get(property1).property2 == property2:
                 res.append(items.get(property1).format_http())
 
index 9765591..57dc48a 100644 (file)
@@ -3,8 +3,8 @@ try:
 except ImportError:
     from distutils.core import setup
 
-with open('README') as file:
-    long_description = file.read()
+with open('README') as f:
+    long_description = f.read()
 
 setup(name='tornado-swagger',
       version='1.0',
@@ -12,20 +12,19 @@ setup(name='tornado-swagger',
       zip_safe=False,
       packages=['tornado_swagger'],
       package_data={
-        'tornado_swagger': [
-          'static/*.*',
-          'static/css/*.*',
-          'static/images/*.*',
-          'static/lib/*.*',
-          'static/lib/shred/*.*',
-        ]
+          'tornado_swagger': [
+              'static/*.*',
+              'static/css/*.*',
+              'static/images/*.*',
+              'static/lib/*.*',
+              'static/lib/shred/*.*'
+          ]
       },
       description='Extract swagger specs from your tornado project',
       author='Serena Feng',
       license='MIT',
       long_description=long_description,
       install_requires=[
-        'tornado>=3.1',
-        'epydoc>=0.3.1'
-      ],
-)
+          'tornado>=3.1',
+          'epydoc>=0.3.1'
+      ])
index 33c4b53..8bcb966 100644 (file)
@@ -2,8 +2,9 @@
 # -*- coding: utf-8 -*-
 from tornado.web import URLSpec, StaticFileHandler
 
-from settings import *
-from views import *
+from settings import default_settings, \
+    SWAGGER_API_DOCS, SWAGGER_API_LIST, SWAGGER_API_SPEC
+from views import SwaggerUIHandler, SwaggerResourcesHandler, SwaggerApiHandler
 
 __author__ = 'serena'
 
@@ -12,9 +13,27 @@ def swagger_handlers():
     prefix = default_settings.get('swagger_prefix', '/swagger')
     if prefix[-1] != '/':
         prefix += '/'
+
+    def _path(suffix):
+        return prefix + suffix
     return [
-        URLSpec(prefix + r'spec.html$',         SwaggerUIHandler,        default_settings, name=URL_SWAGGER_API_DOCS),
-        URLSpec(prefix + r'spec.json$',         SwaggerResourcesHandler, default_settings, name=URL_SWAGGER_API_LIST),
-        URLSpec(prefix + r'spec$',              SwaggerApiHandler,       default_settings, name=URL_SWAGGER_API_SPEC),
-        (prefix + r'(.*\.(css|png|gif|js))',    StaticFileHandler,       {'path': default_settings.get('static_path')}),
+        URLSpec(
+            _path(r'spec.html$'),
+            SwaggerUIHandler,
+            default_settings,
+            name=SWAGGER_API_DOCS),
+        URLSpec(
+            _path(r'spec.json$'),
+            SwaggerResourcesHandler,
+            default_settings,
+            name=SWAGGER_API_LIST),
+        URLSpec(
+            _path(r'spec$'),
+            SwaggerApiHandler,
+            default_settings,
+            name=SWAGGER_API_SPEC),
+        (
+            _path(r'(.*\.(css|png|gif|js))'),
+            StaticFileHandler,
+            {'path': default_settings.get('static_path')}),
     ]
index bd70c17..8f43c4a 100644 (file)
@@ -6,11 +6,12 @@ __author__ = 'serena'
 
 SWAGGER_VERSION = '1.2'
 
-URL_SWAGGER_API_DOCS = 'swagger-api-docs'
-URL_SWAGGER_API_LIST = 'swagger-api-list'
-URL_SWAGGER_API_SPEC = 'swagger-api-spec'
+SWAGGER_API_DOCS = 'swagger-api-docs'
+SWAGGER_API_LIST = 'swagger-api-list'
+SWAGGER_API_SPEC = 'swagger-api-spec'
 
-STATIC_PATH = os.path.join(os.path.dirname(os.path.normpath(__file__)), 'static')
+STATIC_PATH = os.path.join(os.path.dirname(os.path.normpath(__file__)),
+                           'static')
 
 default_settings = {
     'base_url': '/',
index 50b2cfe..b290e05 100644 (file)
@@ -128,7 +128,7 @@ class DocParser(object):
         if code is None:
             self.properties.setdefault(arg, {}).update({
                 'type': link
-           })
+            })
         elif code == 'list':
             self.properties.setdefault(arg, {}).update({
                 'type': 'array',
@@ -184,7 +184,7 @@ class model(DocParser):
         self.required = []
         self.cls = None
 
-    def __call__(self, *args, **kwargs):
+    def __call__(self, *args):
         if self.cls:
             return self.cls
 
@@ -206,17 +206,21 @@ class model(DocParser):
         argspec.args.remove("self")
         defaults = {}
         if argspec.defaults:
-            defaults = list(zip(argspec.args[-len(argspec.defaults):], argspec.defaults))
+            defaults = list(zip(argspec.args[-len(argspec.defaults):],
+                                argspec.defaults))
         required_args_count = len(argspec.args) - len(defaults)
         for arg in argspec.args[:required_args_count]:
             self.required.append(arg)
             self.properties.setdefault(arg, {'type': 'string'})
         for arg, default in defaults:
-            self.properties.setdefault(arg, {'type': 'string', "default": default})
+            self.properties.setdefault(arg, {
+                'type': 'string',
+                "default": default
+            })
 
 
 class operation(DocParser):
-    def __init__(self, nickname=None, **kwds):
+    def __init__(self, nickname='apis', **kwds):
         super(operation, self).__init__()
         self.nickname = nickname
         self.func = None
@@ -271,5 +275,11 @@ def docs(**opts):
 
 
 class Application(tornado.web.Application):
-    def __init__(self, handlers=None, default_host="", transforms=None, **settings):
-        super(Application, self).__init__(swagger_handlers() + handlers, default_host, transforms, **settings)
+    def __init__(self, handlers=None,
+                 default_host="",
+                 transforms=None,
+                 **settings):
+        super(Application, self).__init__(swagger_handlers() + handlers,
+                                          default_host,
+                                          transforms,
+                                          **settings)
index 1882f00..7624023 100644 (file)
@@ -5,13 +5,17 @@ import json
 import inspect
 import tornado.web
 import tornado.template
-from settings import SWAGGER_VERSION, URL_SWAGGER_API_LIST, URL_SWAGGER_API_SPEC, models
+from settings import SWAGGER_VERSION, \
+    SWAGGER_API_LIST, \
+    SWAGGER_API_SPEC
+from settings import models
 
 __author__ = 'serena'
 
 
 def json_dumps(obj, pretty=False):
-    return json.dumps(obj, sort_keys=True, indent=4, separators=(',', ': ')) if pretty else json.dumps(obj)
+    return json.dumps(obj, sort_keys=True, indent=4, separators=(',', ': ')) \
+        if pretty else json.dumps(obj)
 
 
 class SwaggerUIHandler(tornado.web.RequestHandler):
@@ -22,7 +26,9 @@ class SwaggerUIHandler(tornado.web.RequestHandler):
         return self.static_path
 
     def get(self):
-        discovery_url = urlparse.urljoin(self.request.full_url(), self.reverse_url(URL_SWAGGER_API_LIST))
+        discovery_url = \
+            urlparse.urljoin(self.request.full_url(),
+                             self.reverse_url(SWAGGER_API_LIST))
         self.render('index.html', discovery_url=discovery_url)
 
 
@@ -41,7 +47,7 @@ class SwaggerResourcesHandler(tornado.web.RequestHandler):
             'produces': ["application/json"],
             'description': 'Test Api Spec',
             'apis': [{
-                'path': self.reverse_url(URL_SWAGGER_API_SPEC),
+                'path': self.reverse_url(SWAGGER_API_SPEC),
                 'description': 'Test Api Spec'
             }]
         }
@@ -60,11 +66,14 @@ class SwaggerApiHandler(tornado.web.RequestHandler):
         if apis is None:
             raise tornado.web.HTTPError(404)
 
+        base_path = urlparse.urljoin(self.request.full_url(),
+                                     self.base_url)[:-1]
         specs = {
             'apiVersion': self.api_version,
             'swaggerVersion': SWAGGER_VERSION,
-            'basePath': urlparse.urljoin(self.request.full_url(), self.base_url)[:-1],
-            'apis': [self.__get_api_spec__(path, spec, operations) for path, spec, operations in apis],
+            'basePath': base_path,
+            'apis': [self.__get_api_spec__(path, spec, operations)
+                     for path, spec, operations in apis],
             'models': self.__get_models_spec(models)
         }
         self.finish(json_dumps(specs, self.get_arguments('pretty')))
@@ -103,14 +112,19 @@ class SwaggerApiHandler(tornado.web.RequestHandler):
 
     @staticmethod
     def find_api(host_handlers):
+        def get_path(url, args):
+            return url % tuple(['{%s}' % arg for arg in args])
+
+        def get_operations(cls):
+            return [member.rest_api
+                    for (_, member) in inspect.getmembers(cls)
+                    if hasattr(member, 'rest_api')]
+
         for host, handlers in host_handlers:
             for spec in handlers:
-                for (name, member) in inspect.getmembers(spec.handler_class):
-                    if inspect.ismethod(member) and hasattr(member, 'rest_api'):
-                        spec_path = spec._path % tuple(['{%s}' % arg for arg in member.rest_api.func_args])
-                        operations = [member.rest_api for (name, member) in inspect.getmembers(spec.handler_class)
-                                      if hasattr(member, 'rest_api')]
-                        yield spec_path, spec, operations
+                for (_, mbr) in inspect.getmembers(spec.handler_class):
+                    if inspect.ismethod(mbr) and hasattr(mbr, 'rest_api'):
+                        path = get_path(spec._path, mbr.rest_api.func_args)
+                        operations = get_operations(spec.handler_class)
+                        yield path, spec, operations
                         break
-
-