From: mei mei Date: Tue, 31 Oct 2017 04:11:29 +0000 (+0000) Subject: Merge "Remove compass4nfv weekly danube job" X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=bba9d47d826283461ee31a6c437e537f0a93d827;hp=01824bdd153485b742c5ed5be2fbd2fb881b1391;p=releng.git Merge "Remove compass4nfv weekly danube job" --- diff --git a/utils/test/testapi/.gitignore b/utils/test/testapi/.gitignore index a3d6e01ec..21bb264e4 100644 --- a/utils/test/testapi/.gitignore +++ b/utils/test/testapi/.gitignore @@ -6,3 +6,8 @@ build *.egg-info 3rd_party/static/static *.pyc +.cache +.eggs +.tox +.ven +docs/_build diff --git a/utils/test/testapi/docs/Makefile b/utils/test/testapi/docs/Makefile new file mode 100644 index 000000000..11e9eb6d8 --- /dev/null +++ b/utils/test/testapi/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = OPNFVTestAPI +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/utils/test/testapi/docs/conf.py b/utils/test/testapi/docs/conf.py new file mode 100644 index 000000000..eaf15017d --- /dev/null +++ b/utils/test/testapi/docs/conf.py @@ -0,0 +1,165 @@ +# -*- coding: utf-8 -*- +# +# OPNFV TestAPI documentation build configuration file, created by +# sphinx-quickstart on Thu Oct 26 10:23:57 2017. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'OPNFV TestAPI' +copyright = u'2017, SerenaFeng' +author = u'SerenaFeng' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = u'v1.0' +# The full version, including alpha/beta/rc tags. +release = u'v1.0' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This patterns also effect to html_static_path and html_extra_path +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = False + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +# html_static_path = ['_static'] + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# This is required for the alabaster theme +# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars +html_sidebars = { + '**': [ + 'relations.html', # needs 'show_related': True theme option to display + 'searchbox.html', + ] +} + + +# -- Options for HTMLHelp output ------------------------------------------ + +# Output file base name for HTML help builder. +htmlhelp_basename = 'OPNFVTestAPIdoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'OPNFVTestAPI.tex', u'OPNFV TestAPI Documentation', + u'SerenaFeng', 'manual'), +] + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'opnfvtestapi', u'OPNFV TestAPI Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'OPNFVTestAPI', u'OPNFV TestAPI Documentation', + author, 'OPNFVTestAPI', 'One line description of project.', + 'Miscellaneous'), +] diff --git a/utils/test/testapi/docs/developer/devguide/api.rst b/utils/test/testapi/docs/developer/devguide/api.rst new file mode 100644 index 000000000..cd2ca27cf --- /dev/null +++ b/utils/test/testapi/docs/developer/devguide/api.rst @@ -0,0 +1,10 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) 2017 ZTE Corp. + +============ +Restful APIs +============ + +.. toctree:: + :maxdepth: 2 diff --git a/utils/test/testapi/README.rst b/utils/test/testapi/docs/developer/devguide/framework.rst similarity index 92% rename from utils/test/testapi/README.rst rename to utils/test/testapi/docs/developer/devguide/framework.rst index 0d18b7e93..f7a760531 100644 --- a/utils/test/testapi/README.rst +++ b/utils/test/testapi/docs/developer/devguide/framework.rst @@ -1,6 +1,14 @@ -============= -opnfv-testapi -============= +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) 2017 ZTE Corp. + + +.. toctree:: + :maxdepth: 2 + +========= +Framework +========= **Test Results Collector of OPNFV Test Projects**: diff --git a/utils/test/testapi/docs/developer/devguide/index.rst b/utils/test/testapi/docs/developer/devguide/index.rst new file mode 100644 index 000000000..7afcd96fe --- /dev/null +++ b/utils/test/testapi/docs/developer/devguide/index.rst @@ -0,0 +1,18 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) 2017 ZTE Corp. + + +*********************** +TestAPI Developer Guide +*********************** + +.. toctree:: + :maxdepth: 2 + + overview.rst + framework.rst + api.rst + swagger-ui.rst + web-portal.rst + testapi-client.rst diff --git a/utils/test/testapi/docs/developer/devguide/overview.rst b/utils/test/testapi/docs/developer/devguide/overview.rst new file mode 100644 index 000000000..b6475f30e --- /dev/null +++ b/utils/test/testapi/docs/developer/devguide/overview.rst @@ -0,0 +1,98 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) 2017 ZTE Corporation + + +******** +Overview +******** + +TestAPI uses Python as primary programming language and build the framework from the following packages + +======== =============================================================================================================== +Module Package +======== =============================================================================================================== +api `Tornado-Motor`_ - API applications using Motor with tornado +swagger `tornado-swagger`_ - a wrapper for tornado which enables swagger-ui-v1.2 support +web `angular`_ - a superheroic JavaScript MVW framework, the version is AngularJS v1.3.15 +docs `sphinx`_ - a tool that makes it easy to create intelligent and beautiful documentation +testing `pytest`_ - a mature full-featured Python testing tool that helps you write better programs +======== =============================================================================================================== + + +Source Code +=========== + +The structure of repository is based on the recommended sample in `The Hitchhiker's Guide to Python`_ + +========================== ==================================================================================================== +Path Content +========================== ==================================================================================================== +``./3rd_party/`` third part included in TestAPI project +``./docker/`` configuration for building Docker image for TestAPI deployment +``./docs/`` user and developer documentation, design proposals +``./etc/`` configuration files used to install opnfv-testapi +``./opnfv_testapi/`` the actual package +``./opnfv_testapi/tests/`` package functional and unit tests +``./opts/`` optional components, e.g. one click deployment script +========================== ==================================================================================================== + + +Coding Style +============ + +TestAPI follows `OpenStack Style Guidelines`_ for source code and commit message. + +Specially, it is recommended to link each patch set with a JIRA issue. Put:: + + JIRA: RELENG-n + +in commit message to create an automatic link. + + +Testing +======= + +All testing related code are stored in ``./opnfv_testapi/tests/`` + +================== ==================================================================================================== +Path Content +================== ==================================================================================================== +``./tests/unit/`` unit test for each module, follow the same layout as ./opnfv_testapi/ +``./conftest.py`` pytest configuration in project scope +================== ==================================================================================================== + +`tox`_ is used to automate the testing tasks + +.. code-block:: shell + + cd + pip install tox + tox + +The test cases are written in `pytest`_. You may run it selectively with + +.. code-block:: shell + + pytest opnfv_testapi/tests/unit/common/test_config.py + + +Branching +========= + +Currently, no branching for TestAPI, only master branch + + +Releasing +========= + +Currently, TestAPI does not follow community's milestones and releases + +.. _Tornado-Motor: https://motor.readthedocs.io/en/stable/tutorial-tornado.html +.. _tornado-swagger: https://github.com/SerenaFeng/tornado-swagger +.. _angular: https://code.angularjs.org/1.3.15/docs/guide +.. _sphinx: http://www.sphinx-doc.org/en/stable/ +.. _pytest: http://doc.pytest.org/ +.. _OpenStack Style Guidelines: http://docs.openstack.org/developer/hacking/ +.. _The Hitchhiker's Guide to Python: http://python-guide-pt-br.readthedocs.io/en/latest/writing/structure/ +.. _tox: https://tox.readthedocs.io/ diff --git a/utils/test/testapi/docs/developer/devguide/swagger-ui.rst b/utils/test/testapi/docs/developer/devguide/swagger-ui.rst new file mode 100644 index 000000000..7f53047e5 --- /dev/null +++ b/utils/test/testapi/docs/developer/devguide/swagger-ui.rst @@ -0,0 +1,10 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) 2017 ZTE Corp. + +============ +Swagger page +============ + +.. toctree:: + :maxdepth: 2 diff --git a/utils/test/testapi/docs/developer/devguide/testapi-client.rst b/utils/test/testapi/docs/developer/devguide/testapi-client.rst new file mode 100644 index 000000000..ab4c8e802 --- /dev/null +++ b/utils/test/testapi/docs/developer/devguide/testapi-client.rst @@ -0,0 +1,10 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) 2017 ZTE Corp. + +============== +TestAPI client +============== + +.. toctree:: + :maxdepth: 2 diff --git a/utils/test/testapi/docs/developer/devguide/web-portal.rst b/utils/test/testapi/docs/developer/devguide/web-portal.rst new file mode 100644 index 000000000..62b2f1794 --- /dev/null +++ b/utils/test/testapi/docs/developer/devguide/web-portal.rst @@ -0,0 +1,10 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) 2017 ZTE Corp. + +========== +Web portal +========== + +.. toctree:: + :maxdepth: 2 diff --git a/utils/test/testapi/docs/index.rst b/utils/test/testapi/docs/index.rst new file mode 100644 index 000000000..017282a74 --- /dev/null +++ b/utils/test/testapi/docs/index.rst @@ -0,0 +1,20 @@ +.. OPNFV TestAPI documentation master file, created by + sphinx-quickstart on Thu Oct 26 10:23:57 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to OPNFV TestAPI's documentation! +========================================= + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + +Developer Guide +=============== + +.. toctree:: + :maxdepth: 2 + + developer/devguide/index.rst diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/__init__.py b/utils/test/testapi/opnfv_testapi/handlers/__init__.py similarity index 100% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/__init__.py rename to utils/test/testapi/opnfv_testapi/handlers/__init__.py diff --git a/utils/test/testapi/opnfv_testapi/resources/handlers.py b/utils/test/testapi/opnfv_testapi/handlers/base_handlers.py similarity index 98% rename from utils/test/testapi/opnfv_testapi/resources/handlers.py rename to utils/test/testapi/opnfv_testapi/handlers/base_handlers.py index 6c7a819c9..a8ee3db2b 100644 --- a/utils/test/testapi/opnfv_testapi/resources/handlers.py +++ b/utils/test/testapi/opnfv_testapi/handlers/base_handlers.py @@ -20,8 +20,8 @@ # feng.xiaowei@zte.com.cn remove DashboardHandler 5-30-2016 ############################################################################## -import json from datetime import datetime +import json from tornado import gen from tornado import web @@ -30,7 +30,7 @@ from opnfv_testapi.common import check from opnfv_testapi.common import message from opnfv_testapi.common import raises from opnfv_testapi.db import api as dbapi -from opnfv_testapi.resources import models +from opnfv_testapi.models import base_models from opnfv_testapi.tornado_swagger import swagger DEFAULT_REPRESENTATION = "application/json" @@ -67,7 +67,7 @@ class GenericApiHandler(web.RequestHandler): def _create_response(self, resource): href = self.request.full_url() + '/' + str(resource) - return models.CreateResponse(href=href).format() + return base_models.CreateResponse(href=href).format() def format_data(self, data): cls_data = self.table_cls.from_dict(data) diff --git a/utils/test/testapi/opnfv_testapi/resources/pod_handlers.py b/utils/test/testapi/opnfv_testapi/handlers/pod_handlers.py similarity index 94% rename from utils/test/testapi/opnfv_testapi/resources/pod_handlers.py rename to utils/test/testapi/opnfv_testapi/handlers/pod_handlers.py index 502988752..abf5bf9f1 100644 --- a/utils/test/testapi/opnfv_testapi/resources/pod_handlers.py +++ b/utils/test/testapi/opnfv_testapi/handlers/pod_handlers.py @@ -6,12 +6,12 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -import handlers -from opnfv_testapi.resources import pod_models +from opnfv_testapi.handlers import base_handlers +from opnfv_testapi.models import pod_models from opnfv_testapi.tornado_swagger import swagger -class GenericPodHandler(handlers.GenericApiHandler): +class GenericPodHandler(base_handlers.GenericApiHandler): def __init__(self, application, request, **kwargs): super(GenericPodHandler, self).__init__(application, request, **kwargs) self.table = 'pods' diff --git a/utils/test/testapi/opnfv_testapi/resources/project_handlers.py b/utils/test/testapi/opnfv_testapi/handlers/project_handlers.py similarity index 95% rename from utils/test/testapi/opnfv_testapi/resources/project_handlers.py rename to utils/test/testapi/opnfv_testapi/handlers/project_handlers.py index be2950705..30d9ab34a 100644 --- a/utils/test/testapi/opnfv_testapi/resources/project_handlers.py +++ b/utils/test/testapi/opnfv_testapi/handlers/project_handlers.py @@ -7,12 +7,12 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from opnfv_testapi.resources import handlers -from opnfv_testapi.resources import project_models +from opnfv_testapi.handlers import base_handlers +from opnfv_testapi.models import project_models from opnfv_testapi.tornado_swagger import swagger -class GenericProjectHandler(handlers.GenericApiHandler): +class GenericProjectHandler(base_handlers.GenericApiHandler): def __init__(self, application, request, **kwargs): super(GenericProjectHandler, self).__init__(application, request, diff --git a/utils/test/testapi/opnfv_testapi/resources/result_handlers.py b/utils/test/testapi/opnfv_testapi/handlers/result_handlers.py similarity index 98% rename from utils/test/testapi/opnfv_testapi/resources/result_handlers.py rename to utils/test/testapi/opnfv_testapi/handlers/result_handlers.py index 4cd533c4b..c4b61ff22 100644 --- a/utils/test/testapi/opnfv_testapi/resources/result_handlers.py +++ b/utils/test/testapi/opnfv_testapi/handlers/result_handlers.py @@ -6,23 +6,23 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## +from datetime import datetime +from datetime import timedelta import json import logging from bson import objectid -from datetime import datetime -from datetime import timedelta from opnfv_testapi.common import constants from opnfv_testapi.common import message from opnfv_testapi.common import raises from opnfv_testapi.common.config import CONF -from opnfv_testapi.resources import handlers -from opnfv_testapi.resources import result_models +from opnfv_testapi.handlers import base_handlers +from opnfv_testapi.models import result_models from opnfv_testapi.tornado_swagger import swagger -class GenericResultHandler(handlers.GenericApiHandler): +class GenericResultHandler(base_handlers.GenericApiHandler): def __init__(self, application, request, **kwargs): super(GenericResultHandler, self).__init__(application, request, diff --git a/utils/test/testapi/opnfv_testapi/ui/root.py b/utils/test/testapi/opnfv_testapi/handlers/root_handlers.py similarity index 64% rename from utils/test/testapi/opnfv_testapi/ui/root.py rename to utils/test/testapi/opnfv_testapi/handlers/root_handlers.py index 286a6b097..92920fa85 100644 --- a/utils/test/testapi/opnfv_testapi/ui/root.py +++ b/utils/test/testapi/opnfv_testapi/handlers/root_handlers.py @@ -1,8 +1,8 @@ from opnfv_testapi.common.config import CONF -from opnfv_testapi.resources import handlers +from opnfv_testapi.handlers import base_handlers -class RootHandler(handlers.GenericApiHandler): +class RootHandler(base_handlers.GenericApiHandler): def get_template_path(self): return CONF.ui_static_path diff --git a/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py b/utils/test/testapi/opnfv_testapi/handlers/scenario_handlers.py similarity index 99% rename from utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py rename to utils/test/testapi/opnfv_testapi/handlers/scenario_handlers.py index e9c19a7a4..67abcfff6 100644 --- a/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py +++ b/utils/test/testapi/opnfv_testapi/handlers/scenario_handlers.py @@ -2,12 +2,12 @@ import functools from opnfv_testapi.common import message from opnfv_testapi.common import raises -from opnfv_testapi.resources import handlers -import opnfv_testapi.resources.scenario_models as models +from opnfv_testapi.handlers import base_handlers +import opnfv_testapi.models.scenario_models as models from opnfv_testapi.tornado_swagger import swagger -class GenericScenarioHandler(handlers.GenericApiHandler): +class GenericScenarioHandler(base_handlers.GenericApiHandler): def __init__(self, application, request, **kwargs): super(GenericScenarioHandler, self).__init__(application, request, diff --git a/utils/test/testapi/opnfv_testapi/ui/auth/sign.py b/utils/test/testapi/opnfv_testapi/handlers/sign_handlers.py similarity index 94% rename from utils/test/testapi/opnfv_testapi/ui/auth/sign.py rename to utils/test/testapi/opnfv_testapi/handlers/sign_handlers.py index 318473ea2..754066256 100644 --- a/utils/test/testapi/opnfv_testapi/ui/auth/sign.py +++ b/utils/test/testapi/opnfv_testapi/handlers/sign_handlers.py @@ -5,10 +5,10 @@ from tornado import web from opnfv_testapi.common import constants from opnfv_testapi.common.config import CONF from opnfv_testapi.db import api as dbapi -from opnfv_testapi.resources import handlers +from opnfv_testapi.handlers import base_handlers -class SignBaseHandler(handlers.GenericApiHandler): +class SignBaseHandler(base_handlers.GenericApiHandler): def __init__(self, application, request, **kwargs): super(SignBaseHandler, self).__init__(application, request, **kwargs) self.table = 'users' diff --git a/utils/test/testapi/opnfv_testapi/resources/testcase_handlers.py b/utils/test/testapi/opnfv_testapi/handlers/testcase_handlers.py similarity index 96% rename from utils/test/testapi/opnfv_testapi/resources/testcase_handlers.py rename to utils/test/testapi/opnfv_testapi/handlers/testcase_handlers.py index 9399326f0..c4c3c21f5 100644 --- a/utils/test/testapi/opnfv_testapi/resources/testcase_handlers.py +++ b/utils/test/testapi/opnfv_testapi/handlers/testcase_handlers.py @@ -7,12 +7,12 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from opnfv_testapi.resources import handlers -from opnfv_testapi.resources import testcase_models +from opnfv_testapi.handlers import base_handlers +from opnfv_testapi.models import testcase_models from opnfv_testapi.tornado_swagger import swagger -class GenericTestcaseHandler(handlers.GenericApiHandler): +class GenericTestcaseHandler(base_handlers.GenericApiHandler): def __init__(self, application, request, **kwargs): super(GenericTestcaseHandler, self).__init__(application, request, diff --git a/utils/test/testapi/opnfv_testapi/ui/auth/user.py b/utils/test/testapi/opnfv_testapi/handlers/user_handlers.py similarity index 70% rename from utils/test/testapi/opnfv_testapi/ui/auth/user.py rename to utils/test/testapi/opnfv_testapi/handlers/user_handlers.py index ff2c2a993..5067e358b 100644 --- a/utils/test/testapi/opnfv_testapi/ui/auth/user.py +++ b/utils/test/testapi/opnfv_testapi/handlers/user_handlers.py @@ -1,19 +1,11 @@ from opnfv_testapi.common import constants from opnfv_testapi.common import raises from opnfv_testapi.common.config import CONF -from opnfv_testapi.resources import handlers -from opnfv_testapi.resources import models +from opnfv_testapi.handlers import base_handlers +from opnfv_testapi.models.user_models import User -class User(models.ModelBase): - def __init__(self, user=None, email=None, fullname=None, groups=None): - self.user = user - self.email = email - self.fullname = fullname - self.groups = groups - - -class UserHandler(handlers.GenericApiHandler): +class UserHandler(base_handlers.GenericApiHandler): def __init__(self, application, request, **kwargs): super(UserHandler, self).__init__(application, request, **kwargs) self.table = 'users' diff --git a/utils/test/testapi/opnfv_testapi/resources/__init__.py b/utils/test/testapi/opnfv_testapi/models/__init__.py similarity index 100% rename from utils/test/testapi/opnfv_testapi/resources/__init__.py rename to utils/test/testapi/opnfv_testapi/models/__init__.py diff --git a/utils/test/testapi/opnfv_testapi/resources/models.py b/utils/test/testapi/opnfv_testapi/models/base_models.py similarity index 100% rename from utils/test/testapi/opnfv_testapi/resources/models.py rename to utils/test/testapi/opnfv_testapi/models/base_models.py diff --git a/utils/test/testapi/opnfv_testapi/resources/pod_models.py b/utils/test/testapi/opnfv_testapi/models/pod_models.py similarity index 89% rename from utils/test/testapi/opnfv_testapi/resources/pod_models.py rename to utils/test/testapi/opnfv_testapi/models/pod_models.py index 415d3d66b..15c283374 100644 --- a/utils/test/testapi/opnfv_testapi/resources/pod_models.py +++ b/utils/test/testapi/opnfv_testapi/models/pod_models.py @@ -6,7 +6,7 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from opnfv_testapi.resources import models +from opnfv_testapi.models import base_models from opnfv_testapi.tornado_swagger import swagger @@ -17,7 +17,7 @@ from opnfv_testapi.tornado_swagger import swagger @swagger.model() -class PodCreateRequest(models.ModelBase): +class PodCreateRequest(base_models.ModelBase): def __init__(self, name, mode='', details='', role=""): self.name = name self.mode = mode @@ -26,7 +26,7 @@ class PodCreateRequest(models.ModelBase): @swagger.model() -class Pod(models.ModelBase): +class Pod(base_models.ModelBase): def __init__(self, name='', mode='', details='', role="", _id='', create_date='', owner=''): @@ -40,7 +40,7 @@ class Pod(models.ModelBase): @swagger.model() -class Pods(models.ModelBase): +class Pods(base_models.ModelBase): """ @property pods: @ptype pods: C{list} of L{Pod} diff --git a/utils/test/testapi/opnfv_testapi/resources/project_models.py b/utils/test/testapi/opnfv_testapi/models/project_models.py similarity index 85% rename from utils/test/testapi/opnfv_testapi/resources/project_models.py rename to utils/test/testapi/opnfv_testapi/models/project_models.py index 3243882bd..5f280f192 100644 --- a/utils/test/testapi/opnfv_testapi/resources/project_models.py +++ b/utils/test/testapi/opnfv_testapi/models/project_models.py @@ -6,26 +6,26 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from opnfv_testapi.resources import models +from opnfv_testapi.models import base_models from opnfv_testapi.tornado_swagger import swagger @swagger.model() -class ProjectCreateRequest(models.ModelBase): +class ProjectCreateRequest(base_models.ModelBase): def __init__(self, name, description=''): self.name = name self.description = description @swagger.model() -class ProjectUpdateRequest(models.ModelBase): +class ProjectUpdateRequest(base_models.ModelBase): def __init__(self, name='', description=''): self.name = name self.description = description @swagger.model() -class Project(models.ModelBase): +class Project(base_models.ModelBase): def __init__(self, name=None, _id=None, description=None, create_date=None): self._id = _id @@ -35,7 +35,7 @@ class Project(models.ModelBase): @swagger.model() -class Projects(models.ModelBase): +class Projects(base_models.ModelBase): """ @property projects: @ptype projects: C{list} of L{Project} diff --git a/utils/test/testapi/opnfv_testapi/resources/result_models.py b/utils/test/testapi/opnfv_testapi/models/result_models.py similarity index 92% rename from utils/test/testapi/opnfv_testapi/resources/result_models.py rename to utils/test/testapi/opnfv_testapi/models/result_models.py index 890bf8220..97fda08b4 100644 --- a/utils/test/testapi/opnfv_testapi/resources/result_models.py +++ b/utils/test/testapi/opnfv_testapi/models/result_models.py @@ -6,12 +6,12 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from opnfv_testapi.resources import models +from opnfv_testapi.models import base_models from opnfv_testapi.tornado_swagger import swagger @swagger.model() -class TIHistory(models.ModelBase): +class TIHistory(base_models.ModelBase): """ @ptype step: L{float} """ @@ -21,7 +21,7 @@ class TIHistory(models.ModelBase): @swagger.model() -class TI(models.ModelBase): +class TI(base_models.ModelBase): """ @property histories: trust_indicator update histories @ptype histories: C{list} of L{TIHistory} @@ -37,7 +37,7 @@ class TI(models.ModelBase): @swagger.model() -class ResultCreateRequest(models.ModelBase): +class ResultCreateRequest(base_models.ModelBase): """ @property trust_indicator: @ptype trust_indicator: L{TI} @@ -74,7 +74,7 @@ class ResultCreateRequest(models.ModelBase): @swagger.model() -class ResultUpdateRequest(models.ModelBase): +class ResultUpdateRequest(base_models.ModelBase): """ @property trust_indicator: @ptype trust_indicator: L{TI} @@ -84,7 +84,7 @@ class ResultUpdateRequest(models.ModelBase): @swagger.model() -class TestResult(models.ModelBase): +class TestResult(base_models.ModelBase): """ @property trust_indicator: used for long duration test case @ptype trust_indicator: L{TI} @@ -116,7 +116,7 @@ class TestResult(models.ModelBase): @swagger.model() -class TestResults(models.ModelBase): +class TestResults(base_models.ModelBase): """ @property results: @ptype results: C{list} of L{TestResult} diff --git a/utils/test/testapi/opnfv_testapi/resources/scenario_models.py b/utils/test/testapi/opnfv_testapi/models/scenario_models.py similarity index 91% rename from utils/test/testapi/opnfv_testapi/resources/scenario_models.py rename to utils/test/testapi/opnfv_testapi/models/scenario_models.py index d950ed1d7..0610c6b4c 100644 --- a/utils/test/testapi/opnfv_testapi/resources/scenario_models.py +++ b/utils/test/testapi/opnfv_testapi/models/scenario_models.py @@ -1,4 +1,4 @@ -from opnfv_testapi.resources import models +from opnfv_testapi.models import base_models from opnfv_testapi.tornado_swagger import swagger @@ -11,7 +11,7 @@ def dict_default(value): @swagger.model() -class ScenarioTI(models.ModelBase): +class ScenarioTI(base_models.ModelBase): def __init__(self, date=None, status='silver'): self.date = date self.status = status @@ -25,7 +25,7 @@ class ScenarioTI(models.ModelBase): @swagger.model() -class ScenarioScore(models.ModelBase): +class ScenarioScore(base_models.ModelBase): def __init__(self, date=None, score='0'): self.date = date self.score = score @@ -39,7 +39,7 @@ class ScenarioScore(models.ModelBase): @swagger.model() -class ScenarioProject(models.ModelBase): +class ScenarioProject(base_models.ModelBase): """ @property customs: @ptype customs: C{list} of L{string} @@ -83,7 +83,7 @@ class ScenarioProject(models.ModelBase): @swagger.model() -class ScenarioVersion(models.ModelBase): +class ScenarioVersion(base_models.ModelBase): """ @property projects: @ptype projects: C{list} of L{ScenarioProject} @@ -116,7 +116,7 @@ class ScenarioVersion(models.ModelBase): @swagger.model() -class ScenarioInstaller(models.ModelBase): +class ScenarioInstaller(base_models.ModelBase): """ @property versions: @ptype versions: C{list} of L{ScenarioVersion} @@ -146,7 +146,7 @@ class ScenarioInstaller(models.ModelBase): @swagger.model() -class ScenarioCreateRequest(models.ModelBase): +class ScenarioCreateRequest(base_models.ModelBase): """ @property installers: @ptype installers: C{list} of L{ScenarioInstaller} @@ -161,19 +161,19 @@ class ScenarioCreateRequest(models.ModelBase): @swagger.model() -class ScenarioChangeOwnerRequest(models.ModelBase): +class ScenarioChangeOwnerRequest(base_models.ModelBase): def __init__(self, owner=None): self.owner = owner @swagger.model() -class ScenarioUpdateRequest(models.ModelBase): +class ScenarioUpdateRequest(base_models.ModelBase): def __init__(self, name=None): self.name = name @swagger.model() -class Scenario(models.ModelBase): +class Scenario(base_models.ModelBase): """ @property installers: @ptype installers: C{list} of L{ScenarioInstaller} @@ -205,7 +205,7 @@ class Scenario(models.ModelBase): @swagger.model() -class Scenarios(models.ModelBase): +class Scenarios(base_models.ModelBase): """ @property scenarios: @ptype scenarios: C{list} of L{Scenario} diff --git a/utils/test/testapi/opnfv_testapi/resources/testcase_models.py b/utils/test/testapi/opnfv_testapi/models/testcase_models.py similarity index 93% rename from utils/test/testapi/opnfv_testapi/resources/testcase_models.py rename to utils/test/testapi/opnfv_testapi/models/testcase_models.py index 2379dfc4c..d1b8877f7 100644 --- a/utils/test/testapi/opnfv_testapi/resources/testcase_models.py +++ b/utils/test/testapi/opnfv_testapi/models/testcase_models.py @@ -6,12 +6,12 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -from opnfv_testapi.resources import models +from opnfv_testapi.models import base_models from opnfv_testapi.tornado_swagger import swagger @swagger.model() -class TestcaseCreateRequest(models.ModelBase): +class TestcaseCreateRequest(base_models.ModelBase): def __init__(self, name, url=None, description=None, catalog_description=None, tier=None, ci_loop=None, criteria=None, blocking=None, dependencies=None, run=None, @@ -33,7 +33,7 @@ class TestcaseCreateRequest(models.ModelBase): @swagger.model() -class TestcaseUpdateRequest(models.ModelBase): +class TestcaseUpdateRequest(base_models.ModelBase): def __init__(self, name=None, description=None, project_name=None, catalog_description=None, tier=None, ci_loop=None, criteria=None, blocking=None, dependencies=None, run=None, @@ -55,7 +55,7 @@ class TestcaseUpdateRequest(models.ModelBase): @swagger.model() -class Testcase(models.ModelBase): +class Testcase(base_models.ModelBase): def __init__(self, _id=None, name=None, project_name=None, description=None, url=None, creation_date=None, catalog_description=None, tier=None, ci_loop=None, @@ -82,7 +82,7 @@ class Testcase(models.ModelBase): @swagger.model() -class Testcases(models.ModelBase): +class Testcases(base_models.ModelBase): """ @property testcases: @ptype testcases: C{list} of L{Testcase} diff --git a/utils/test/testapi/opnfv_testapi/models/user_models.py b/utils/test/testapi/opnfv_testapi/models/user_models.py new file mode 100644 index 000000000..90fbadcd4 --- /dev/null +++ b/utils/test/testapi/opnfv_testapi/models/user_models.py @@ -0,0 +1,9 @@ +from opnfv_testapi.models import base_models + + +class User(base_models.ModelBase): + def __init__(self, user=None, email=None, fullname=None, groups=None): + self.user = user + self.email = email + self.fullname = fullname + self.groups = groups diff --git a/utils/test/testapi/opnfv_testapi/router/url_mappings.py b/utils/test/testapi/opnfv_testapi/router/url_mappings.py index ce0a3eeb3..349d55771 100644 --- a/utils/test/testapi/opnfv_testapi/router/url_mappings.py +++ b/utils/test/testapi/opnfv_testapi/router/url_mappings.py @@ -9,19 +9,19 @@ import tornado.web from opnfv_testapi.common.config import CONF -from opnfv_testapi.resources import handlers -from opnfv_testapi.resources import pod_handlers -from opnfv_testapi.resources import project_handlers -from opnfv_testapi.resources import result_handlers -from opnfv_testapi.resources import scenario_handlers -from opnfv_testapi.resources import testcase_handlers -from opnfv_testapi.ui import root -from opnfv_testapi.ui.auth import sign -from opnfv_testapi.ui.auth import user +from opnfv_testapi.handlers import base_handlers +from opnfv_testapi.handlers import pod_handlers +from opnfv_testapi.handlers import project_handlers +from opnfv_testapi.handlers import result_handlers +from opnfv_testapi.handlers import root_handlers +from opnfv_testapi.handlers import scenario_handlers +from opnfv_testapi.handlers import sign_handlers +from opnfv_testapi.handlers import testcase_handlers +from opnfv_testapi.handlers import user_handlers mappings = [ # GET /versions => GET API version - (r"/versions", handlers.VersionHandler), + (r"/versions", base_handlers.VersionHandler), # few examples: # GET /api/v1/pods => Get all pods @@ -74,10 +74,11 @@ mappings = [ tornado.web.StaticFileHandler, {'path': CONF.ui_static_path}), - (r'/', root.RootHandler), - (r'/api/v1/auth/signin', sign.SigninHandler), - (r'/{}'.format(CONF.lfid_signin_return), sign.SigninReturnHandler), - (r'/api/v1/auth/signout', sign.SignoutHandler), - (r'/api/v1/profile', user.UserHandler), + (r'/', root_handlers.RootHandler), + (r'/api/v1/auth/signin', sign_handlers.SigninHandler), + (r'/{}'.format(CONF.lfid_signin_return), + sign_handlers.SigninReturnHandler), + (r'/api/v1/auth/signout', sign_handlers.SignoutHandler), + (r'/api/v1/profile', user_handlers.UserHandler), ] diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/executor.py b/utils/test/testapi/opnfv_testapi/tests/unit/executor.py index aa99b9086..743c07615 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/executor.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/executor.py @@ -14,7 +14,7 @@ import mock O_get_secure_cookie = ( - 'opnfv_testapi.resources.handlers.GenericApiHandler.get_secure_cookie') + 'opnfv_testapi.handlers.base_handlers.GenericApiHandler.get_secure_cookie') def thread_execute(method, *args, **kwargs): diff --git a/utils/test/testapi/opnfv_testapi/ui/__init__.py b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/__init__.py similarity index 100% rename from utils/test/testapi/opnfv_testapi/ui/__init__.py rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/__init__.py diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c1.json b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/scenario-c1.json similarity index 100% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c1.json rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/scenario-c1.json diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/scenario-c2.json similarity index 100% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/scenario-c2.json diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_base.py b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_base.py similarity index 98% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/test_base.py rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_base.py index 89cd7e8ed..b7fabb994 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_base.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_base.py @@ -14,8 +14,8 @@ from bson.objectid import ObjectId import mock from tornado import testing -from opnfv_testapi.resources import models -from opnfv_testapi.resources import pod_models +from opnfv_testapi.models import base_models +from opnfv_testapi.models import pod_models from opnfv_testapi.tests.unit import fake_pymongo @@ -25,7 +25,7 @@ class TestBase(testing.AsyncHTTPTestCase): def setUp(self): self._patch_server() self.basePath = '' - self.create_res = models.CreateResponse + self.create_res = base_models.CreateResponse self.get_res = None self.list_res = None self.update_res = None diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_pod.py b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_pod.py similarity index 97% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/test_pod.py rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_pod.py index 5d9da3a86..95ed8bac1 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_pod.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_pod.py @@ -10,10 +10,10 @@ import httplib import unittest from opnfv_testapi.common import message -from opnfv_testapi.resources import pod_models +from opnfv_testapi.models import pod_models from opnfv_testapi.tests.unit import executor from opnfv_testapi.tests.unit import fake_pymongo -from opnfv_testapi.tests.unit.resources import test_base as base +from opnfv_testapi.tests.unit.handlers import test_base as base class TestPodBase(base.TestBase): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_project.py b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_project.py similarity index 97% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/test_project.py rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_project.py index 0622ba8d4..939cc0d07 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_project.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_project.py @@ -2,9 +2,9 @@ import httplib import unittest from opnfv_testapi.common import message -from opnfv_testapi.resources import project_models +from opnfv_testapi.models import project_models from opnfv_testapi.tests.unit import executor -from opnfv_testapi.tests.unit.resources import test_base as base +from opnfv_testapi.tests.unit.handlers import test_base as base class TestProjectBase(base.TestBase): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_result.py b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_result.py similarity index 98% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/test_result.py rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_result.py index 6c1a07a91..b9f9ede26 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_result.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_result.py @@ -15,12 +15,12 @@ import urllib import unittest from opnfv_testapi.common import message -from opnfv_testapi.resources import project_models -from opnfv_testapi.resources import result_models -from opnfv_testapi.resources import testcase_models +from opnfv_testapi.models import project_models +from opnfv_testapi.models import result_models +from opnfv_testapi.models import testcase_models from opnfv_testapi.tests.unit import executor from opnfv_testapi.tests.unit import fake_pymongo -from opnfv_testapi.tests.unit.resources import test_base as base +from opnfv_testapi.tests.unit.handlers import test_base as base class Details(object): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_scenario.py similarity index 99% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_scenario.py index 1367fc669..de7777a83 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_scenario.py @@ -6,8 +6,8 @@ import os from datetime import datetime from opnfv_testapi.common import message -import opnfv_testapi.resources.scenario_models as models -from opnfv_testapi.tests.unit.resources import test_base as base +import opnfv_testapi.models.scenario_models as models +from opnfv_testapi.tests.unit.handlers import test_base as base def _none_default(check, default): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_testcase.py b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_testcase.py similarity index 97% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/test_testcase.py rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_testcase.py index 4f2bc2ad1..e4c668e7a 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_testcase.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_testcase.py @@ -11,10 +11,10 @@ import httplib import unittest from opnfv_testapi.common import message -from opnfv_testapi.resources import project_models -from opnfv_testapi.resources import testcase_models +from opnfv_testapi.models import project_models +from opnfv_testapi.models import testcase_models from opnfv_testapi.tests.unit import executor -from opnfv_testapi.tests.unit.resources import test_base as base +from opnfv_testapi.tests.unit.handlers import test_base as base class TestCaseBase(base.TestBase): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_token.py b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_token.py similarity index 96% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/test_token.py rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_token.py index bd64723be..e8b746dfc 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_token.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_token.py @@ -11,7 +11,7 @@ from tornado import web from opnfv_testapi.common import message from opnfv_testapi.tests.unit import executor from opnfv_testapi.tests.unit import fake_pymongo -from opnfv_testapi.tests.unit.resources import test_result +from opnfv_testapi.tests.unit.handlers import test_result class TestTokenCreateResult(test_result.TestResultBase): diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_version.py b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_version.py similarity index 87% rename from utils/test/testapi/opnfv_testapi/tests/unit/resources/test_version.py rename to utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_version.py index 51fed11ea..6ef810f0e 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_version.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/handlers/test_version.py @@ -9,15 +9,15 @@ import httplib import unittest -from opnfv_testapi.resources import models +from opnfv_testapi.models import base_models from opnfv_testapi.tests.unit import executor -from opnfv_testapi.tests.unit.resources import test_base as base +from opnfv_testapi.tests.unit.handlers import test_base as base class TestVersionBase(base.TestBase): def setUp(self): super(TestVersionBase, self).setUp() - self.list_res = models.Versions + self.list_res = base_models.Versions self.basePath = '/versions' diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_fake_pymongo.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_fake_pymongo.py deleted file mode 100644 index 1ebc96f3b..000000000 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_fake_pymongo.py +++ /dev/null @@ -1,123 +0,0 @@ -############################################################################## -# Copyright (c) 2016 ZTE Corporation -# feng.xiaowei@zte.com.cn -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -import unittest - -from tornado import gen -from tornado import testing -from tornado import web - -from opnfv_testapi.tests.unit import fake_pymongo - - -class MyTest(testing.AsyncHTTPTestCase): - def setUp(self): - super(MyTest, self).setUp() - self.db = fake_pymongo - self.addCleanup(self._clear) - self.io_loop.run_sync(self.fixture_setup) - - def get_app(self): - return web.Application() - - @gen.coroutine - def fixture_setup(self): - self.test1 = {'_id': '1', 'name': 'test1'} - self.test2 = {'name': 'test2'} - yield self.db.pods.insert({'_id': '1', 'name': 'test1'}) - yield self.db.pods.insert({'name': 'test2'}) - - @testing.gen_test - def test_find_one(self): - user = yield self.db.pods.find_one({'name': 'test1'}) - self.assertEqual(user, self.test1) - self.db.pods.remove() - - @testing.gen_test - def test_find(self): - cursor = self.db.pods.find() - names = [] - while (yield cursor.fetch_next): - ob = cursor.next_object() - names.append(ob.get('name')) - self.assertItemsEqual(names, ['test1', 'test2']) - - @testing.gen_test - def test_update(self): - yield self.db.pods.update({'_id': '1'}, {'name': 'new_test1'}) - user = yield self.db.pods.find_one({'_id': '1'}) - self.assertEqual(user.get('name', None), 'new_test1') - - def test_update_dot_error(self): - self._update_assert({'_id': '1', 'name': {'1. name': 'test1'}}, - 'key 1. name must not contain .') - - def test_update_dot_no_error(self): - self._update_assert({'_id': '1', 'name': {'1. name': 'test1'}}, - None, - check_keys=False) - - def test_update_dollar_error(self): - self._update_assert({'_id': '1', 'name': {'$name': 'test1'}}, - 'key $name must not start with $') - - def test_update_dollar_no_error(self): - self._update_assert({'_id': '1', 'name': {'$name': 'test1'}}, - None, - check_keys=False) - - @testing.gen_test - def test_remove(self): - yield self.db.pods.remove({'_id': '1'}) - user = yield self.db.pods.find_one({'_id': '1'}) - self.assertIsNone(user) - - def test_insert_dot_error(self): - self._insert_assert({'_id': '1', '2. name': 'test1'}, - 'key 2. name must not contain .') - - def test_insert_dot_no_error(self): - self._insert_assert({'_id': '1', '2. name': 'test1'}, - None, - check_keys=False) - - def test_insert_dollar_error(self): - self._insert_assert({'_id': '1', '$name': 'test1'}, - 'key $name must not start with $') - - def test_insert_dollar_no_error(self): - self._insert_assert({'_id': '1', '$name': 'test1'}, - None, - check_keys=False) - - def _clear(self): - self.db.pods.clear() - - def _update_assert(self, docs, error=None, **kwargs): - self._db_assert('update', error, {'_id': '1'}, docs, **kwargs) - - def _insert_assert(self, docs, error=None, **kwargs): - self._db_assert('insert', error, docs, **kwargs) - - @testing.gen_test - def _db_assert(self, method, error, *args, **kwargs): - name_error = None - try: - yield self._eval_pods_db(method, *args, **kwargs) - except NameError as err: - name_error = err.args[0] - finally: - self.assertEqual(name_error, error) - - def _eval_pods_db(self, method, *args, **kwargs): - table_obj = vars(self.db)['pods'] - return table_obj.__getattribute__(method)(*args, **kwargs) - - -if __name__ == '__main__': - unittest.main() diff --git a/utils/test/testapi/opnfv_testapi/tornado_swagger/handlers.py b/utils/test/testapi/opnfv_testapi/tornado_swagger/handlers.py index e39a9f639..a04de07f7 100644 --- a/utils/test/testapi/opnfv_testapi/tornado_swagger/handlers.py +++ b/utils/test/testapi/opnfv_testapi/tornado_swagger/handlers.py @@ -26,7 +26,7 @@ def swagger_handlers(): settings.docs_settings, name=settings.API_DOCS_NAME), tornado.web.URLSpec( - _path(r'resources.json$'), + _path(r'models.json$'), views.SwaggerResourcesHandler, settings.docs_settings, name=settings.RESOURCE_LISTING_NAME), diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/about/about.html b/utils/test/testapi/opnfv_testapi/ui/about/about.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/about/about.html rename to utils/test/testapi/opnfv_testapi/ui/about/about.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/auth-failure/authFailureController.js b/utils/test/testapi/opnfv_testapi/ui/auth-failure/authFailureController.js similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/auth-failure/authFailureController.js rename to utils/test/testapi/opnfv_testapi/ui/auth-failure/authFailureController.js diff --git a/utils/test/testapi/opnfv_testapi/ui/auth/__init__.py b/utils/test/testapi/opnfv_testapi/ui/auth/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/home/home.html b/utils/test/testapi/opnfv_testapi/ui/home/home.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/home/home.html rename to utils/test/testapi/opnfv_testapi/ui/home/home.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/logout/logout.html b/utils/test/testapi/opnfv_testapi/ui/logout/logout.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/logout/logout.html rename to utils/test/testapi/opnfv_testapi/ui/logout/logout.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/logout/logoutController.js b/utils/test/testapi/opnfv_testapi/ui/logout/logoutController.js similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/logout/logoutController.js rename to utils/test/testapi/opnfv_testapi/ui/logout/logoutController.js diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/pods/pods.html b/utils/test/testapi/opnfv_testapi/ui/pods/pods.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/pods/pods.html rename to utils/test/testapi/opnfv_testapi/ui/pods/pods.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/pods/podsController.js b/utils/test/testapi/opnfv_testapi/ui/pods/podsController.js similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/pods/podsController.js rename to utils/test/testapi/opnfv_testapi/ui/pods/podsController.js diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/profile/importPubKeyModal.html b/utils/test/testapi/opnfv_testapi/ui/profile/importPubKeyModal.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/profile/importPubKeyModal.html rename to utils/test/testapi/opnfv_testapi/ui/profile/importPubKeyModal.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/profile/profile.html b/utils/test/testapi/opnfv_testapi/ui/profile/profile.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/profile/profile.html rename to utils/test/testapi/opnfv_testapi/ui/profile/profile.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/profile/profileController.js b/utils/test/testapi/opnfv_testapi/ui/profile/profileController.js similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/profile/profileController.js rename to utils/test/testapi/opnfv_testapi/ui/profile/profileController.js diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/profile/showPubKeyModal.html b/utils/test/testapi/opnfv_testapi/ui/profile/showPubKeyModal.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/profile/showPubKeyModal.html rename to utils/test/testapi/opnfv_testapi/ui/profile/showPubKeyModal.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/partials/editTestModal.html b/utils/test/testapi/opnfv_testapi/ui/results-report/partials/editTestModal.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/partials/editTestModal.html rename to utils/test/testapi/opnfv_testapi/ui/results-report/partials/editTestModal.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/partials/fullTestListModal.html b/utils/test/testapi/opnfv_testapi/ui/results-report/partials/fullTestListModal.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/partials/fullTestListModal.html rename to utils/test/testapi/opnfv_testapi/ui/results-report/partials/fullTestListModal.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/partials/reportDetails.html b/utils/test/testapi/opnfv_testapi/ui/results-report/partials/reportDetails.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/partials/reportDetails.html rename to utils/test/testapi/opnfv_testapi/ui/results-report/partials/reportDetails.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/resultsReport.html b/utils/test/testapi/opnfv_testapi/ui/results-report/resultsReport.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/resultsReport.html rename to utils/test/testapi/opnfv_testapi/ui/results-report/resultsReport.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/resultsReportController.js b/utils/test/testapi/opnfv_testapi/ui/results-report/resultsReportController.js similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/results-report/resultsReportController.js rename to utils/test/testapi/opnfv_testapi/ui/results-report/resultsReportController.js diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html b/utils/test/testapi/opnfv_testapi/ui/results/results.html similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/results/results.html rename to utils/test/testapi/opnfv_testapi/ui/results/results.html diff --git a/utils/test/testapi/3rd_party/static/testapi-ui/components/results/resultsController.js b/utils/test/testapi/opnfv_testapi/ui/results/resultsController.js similarity index 100% rename from utils/test/testapi/3rd_party/static/testapi-ui/components/results/resultsController.js rename to utils/test/testapi/opnfv_testapi/ui/results/resultsController.js diff --git a/utils/test/testapi/setup.cfg b/utils/test/testapi/setup.cfg index 23341e4b4..b3394d44f 100644 --- a/utils/test/testapi/setup.cfg +++ b/utils/test/testapi/setup.cfg @@ -1,8 +1,6 @@ [metadata] name = opnfv_testapi summary = Test Result Collector -description-file = - README.rst author = SerenaFeng author-email = feng.xiaowei@zte.com.cn #home-page = http://www.opnfv.org/ @@ -28,6 +26,7 @@ packages = data_files = /etc/opnfv_testapi = etc/config.ini /usr/local/share/opnfv_testapi = 3rd_party/static/* + /usr/local/share/opnfv_testapi/testapi-ui/components = opnfv_testapi/ui/* [entry_points] console_scripts = diff --git a/utils/test/testapi/tox.ini b/utils/test/testapi/tox.ini index d300f1a61..13b197c63 100644 --- a/utils/test/testapi/tox.ini +++ b/utils/test/testapi/tox.ini @@ -25,6 +25,10 @@ setenv= HOME = {envtmpdir} PYTHONPATH = {toxinidir} +[testenv:docs] +basepython=python2.7 +commands = sphinx-build -W -b html docs/ docs/_build + [testenv:pep8] deps = flake8 commands = flake8 {toxinidir}