diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css new file mode 100644 index 00000000..8b28d3b9 --- /dev/null +++ b/docs/_static/css/custom.css @@ -0,0 +1,27 @@ +/* Custom styles */ + +body { + color: #000; +} + +.wy-side-nav-search > div.version { + color: #026; +} + +.wy-menu-vertical header, .wy-menu-vertical p.caption { + color: #777; +} + +.rst-content blockquote { + border-left: 2px solid #ddd; +} + +code, .rst-content tt, .rst-content code { + font-size: 95%; +} +.note p code, .note div div pre { + background-color: #E7F2FC; +} +.warning p code, .warning div div pre { + background-color: #FFF8DD; +} diff --git a/docs/_static/img/icon.svg b/docs/_static/img/icon.svg new file mode 100644 index 00000000..013929e7 --- /dev/null +++ b/docs/_static/img/icon.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/_static/img/logo.ico b/docs/_static/img/logo.ico new file mode 100644 index 00000000..e08f4be6 Binary files /dev/null and b/docs/_static/img/logo.ico differ diff --git a/docs/_static/img/logo.png b/docs/_static/img/logo.png new file mode 100644 index 00000000..640bdb84 Binary files /dev/null and b/docs/_static/img/logo.png differ diff --git a/docs/_static/img/logo.svg b/docs/_static/img/logo.svg new file mode 100644 index 00000000..38083975 --- /dev/null +++ b/docs/_static/img/logo.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + diff --git a/docs/api-reference.rst b/docs/api-reference.rst new file mode 100644 index 00000000..e3594904 --- /dev/null +++ b/docs/api-reference.rst @@ -0,0 +1,17 @@ +.. full API docs + + Copyright © 2019 Camila Maia + + ## LICENSE_SHORT ## + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +###################### +Complete API Reference +###################### + +The following is a complete API reference generated from source. + +.. toctree:: + :maxdepth: 4 + + api/scanapi diff --git a/documentation/source/modules.rst b/docs/api/modules.rst similarity index 100% rename from documentation/source/modules.rst rename to docs/api/modules.rst diff --git a/documentation/source/scanapi.evaluators.rst b/docs/api/scanapi.evaluators.rst similarity index 95% rename from documentation/source/scanapi.evaluators.rst rename to docs/api/scanapi.evaluators.rst index eb781f33..1a2373f9 100644 --- a/documentation/source/scanapi.evaluators.rst +++ b/docs/api/scanapi.evaluators.rst @@ -1,6 +1,11 @@ scanapi.evaluators package ========================== +.. automodule:: scanapi.evaluators + :members: + :undoc-members: + :show-inheritance: + Submodules ---------- @@ -28,11 +33,3 @@ scanapi.evaluators.string\_evaluator module :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: scanapi.evaluators - :members: - :undoc-members: - :show-inheritance: diff --git a/documentation/source/scanapi.rst b/docs/api/scanapi.rst similarity index 91% rename from documentation/source/scanapi.rst rename to docs/api/scanapi.rst index bf3dab16..f4607891 100644 --- a/documentation/source/scanapi.rst +++ b/docs/api/scanapi.rst @@ -1,6 +1,11 @@ scanapi package =============== +.. automodule:: scanapi + :members: + :undoc-members: + :show-inheritance: + Subpackages ----------- @@ -45,14 +50,6 @@ scanapi.hide\_utils module :undoc-members: :show-inheritance: -scanapi.main module -------------------- - -.. automodule:: scanapi.main - :members: - :undoc-members: - :show-inheritance: - scanapi.reporter module ----------------------- @@ -109,11 +106,3 @@ scanapi.utils module :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: scanapi - :members: - :undoc-members: - :show-inheritance: diff --git a/documentation/source/scanapi.tree.rst b/docs/api/scanapi.tree.rst similarity index 96% rename from documentation/source/scanapi.tree.rst rename to docs/api/scanapi.tree.rst index b834566e..b84893de 100644 --- a/documentation/source/scanapi.tree.rst +++ b/docs/api/scanapi.tree.rst @@ -1,6 +1,11 @@ scanapi.tree package ==================== +.. automodule:: scanapi.tree + :members: + :undoc-members: + :show-inheritance: + Submodules ---------- @@ -36,11 +41,3 @@ scanapi.tree.tree\_keys module :undoc-members: :show-inheritance: - -Module contents ---------------- - -.. automodule:: scanapi.tree - :members: - :undoc-members: - :show-inheritance: diff --git a/docs/cli-reference.rst b/docs/cli-reference.rst new file mode 100644 index 00000000..6ce8d874 --- /dev/null +++ b/docs/cli-reference.rst @@ -0,0 +1,23 @@ + +.. Click CLI reference + + Copyright © 2019 Camila Maia + + ## LICENSE_SHORT ## + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +###################### +Complete CLI Reference +###################### + +This is a full reference of the :command:`scanapi` command, +with the same information as you get from using :option:`--help`. +It is generated from source code and thus always up to date. +See :doc:`usage` for a more detailed description. + +.. contents:: Available Commands + :local: + +.. click:: scanapi:main + :prog: scanapi + :show-nested: diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..eaa9ad33 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,319 @@ +# +# Sphinx documentation build configuration file. +# +# 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. + +import os +import re +import sys + +# 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. +docs_dir = os.path.abspath(os.path.dirname(__file__)) +sys.path.insert(0, os.path.dirname(docs_dir)) +if os.path.exists(os.path.join(os.path.dirname(docs_dir), "src")): + sys.path.insert(0, os.path.join(os.path.dirname(docs_dir), "src")) + +#from setup import project as meta +from rituals.util import buildsys +meta = buildsys.project_meta(os.path.dirname(docs_dir)) +from scanapi import __main__ # Perform click setup for 'sphinx_click.ext' + +def setup(app): + """See https://docs.readthedocs.io/en/latest/guides/adding-custom-css.html""" + if os.path.exists('_static/css/custom.css'): + app.add_css_file('css/custom.css') + if os.path.exists('_static/js/custom.js'): + app.add_javascript('js/custom.js') + +on_rtd = os.environ.get('READTHEDOCS', None) == 'True' +if not on_rtd: + import sphinx_rtd_theme + +# -- General configuration ----------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +needs_sphinx = '1.3' + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = [ + 'sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.coverage', + 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', 'sphinx.ext.napoleon', + 'sphinx_click.ext', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = { + '.rst': 'restructuredtext', + '.md': 'markdown', +} +try: + import recommonmark +except ImportError: + import warnings + warnings.warn("'recommonmark' extension not available!") + del source_suffix['.md'] +else: + extensions += ['recommonmark'] + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = meta["name"] +copyright = meta["copyright"] + +# 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 full version, including alpha/beta/rc tags. +release = meta["version"] +# The short X.Y version. +version = '.'.join(re.split(r"[^\d]+", release)[:2]) + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +today_fmt = '%Y-%m-%d' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [ + "*~", "README.rst", "api/modules.rst", + "include-*.rst", +] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + +# Napoleon / API doc settings +napoleon_numpy_docstring = False +napoleon_use_ivar = True + +# https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html +autodoc_inherit_docstrings = True +autodoc_default_options = { + 'members': None, + 'member-order': 'bysource', + 'undoc-members': None, + 'private-members': None, + #'special-members': '__str__,__repr__', # comma-separated specials to include + #'inherited-members': 'object,tuple,namedtuple', # comma-separated + #'show-inheritance': None, + #'ignore-module-all': '', + #'imported-members': 'StringIO', + 'exclude-members': '__weakref__', # comma-separated exclusions +} + + +# -- Options for HTML output --------------------------------------------------- +if not on_rtd: + # The theme to use for HTML and HTML Help pages. See the documentation for + # a list of builtin themes. + html_theme = 'sphinx_rtd_theme' + + # Add any paths that contain custom themes here, relative to this directory. + html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] + +# 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 = dict( +) + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +html_logo = "_static/img/logo.png" + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +html_favicon = "_static/img/logo.ico" + +# 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'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +html_last_updated_fmt = '%Y-%m-%d' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +html_domain_indices = True + +# If false, no index is generated. +html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +html_show_sphinx = False + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = project + 'doc' + + +# -- 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': '', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', project + '.tex', project + u' Documentation', meta["author"], 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output -------------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', project, project + u' Documentation', [meta["author"]], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- 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 = [ + ('index', project, project + u' Documentation', meta["author"], project, meta["description"], 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + + +# -- InterSphinx configuration ---------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#configuration +extensions += ['sphinx.ext.intersphinx'] +intersphinx_timeout = 15 # seconds +intersphinx_mapping = dict( + invoke=('http://docs.pyinvoke.org/en/stable', None), +) + +# -- External Links configuration ------------------------------------------- +extensions += ['sphinx.ext.extlinks'] +extlinks = dict( + gh=('https://github.com/%s', ''), +) + +# -- GraphViz configuration ------------------------------------------------- +extensions += ['sphinx.ext.graphviz'] +graphviz_output_format = 'svg' + +# -- PlantUML configuration ------------------------------------------------- +##extensions += ['sphinxcontrib.plantuml'] +plantuml = os.path.expandvars('java -jar ${HOME}/.local/share/java/plantuml.jar') +plantuml_output_format = 'svg_obj' diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..c6625e8f --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,120 @@ +.. documentation master file + + Copyright © 2019 Camila Maia + + ## LICENSE_SHORT ## + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +############################################################################# +Welcome to the “ScanAPI” manual! +############################################################################# + +.. image:: _static/img/logo.png + +Automated Integration Testing and Live Documentation for your API. + + +********** +Installing +********** + +*ScanAPI* can be installed from PyPI +via ``pip install scanapi`` as usual, +see `releases `_ +on GitHub for an overview of available versions – the project uses +`semantic versioning `_ and follows +`PEP 440 `_ conventions. +If no releases are available yet, install from source as described right below. + +To get a bleeding-edge version from source, use these commands: + +.. code-block:: shell + + repo="scanapi/scanapi" + python3 -m venv ~/.local/venvs/scanapi && . $_/bin/activate + python3 -m pip install -r "https://raw.githubusercontent.com/$repo/master/requirements.txt" + python3 -m pip install -e "git+https://github.com/$repo.git#egg=${repo#*/}" + ln -nfs ../.local/venvs/scanapi/bin/scanapi ~/.local/bin + +See the following section on how to create a full development environment. + +To add bash completion, read the +`Click docs `_ +about it, or just follow these instructions: + +.. code-block:: shell + + cmdname=scanapi + mkdir -p ~/.bash_completion.d + ( export _$(tr a-z- A-Z_ <<<"$cmdname")_COMPLETE=source ; \ + $cmdname >~/.bash_completion.d/$cmdname.sh ) + grep /.bash_completion.d/$cmdname.sh ~/.bash_completion >/dev/null \ + || echo >>~/.bash_completion ". ~/.bash_completion.d/$cmdname.sh" + . "/etc/bash_completion" + +After installation, continue with :doc:`usage`. + + +************ +Contributing +************ + +To create a working directory for this project, call these commands: + +.. code-block:: shell + + git clone "https://github.com/scanapi/scanapi.git" + cd "scanapi" + . .env --yes --develop + invoke build --docs test check + +Contributing to this project is easy, and reporting an issue or +adding to the documentation also improves things for every user. +You don’t need to be a developer to contribute. +See :doc:`CONTRIBUTING` for more. + + +********************** +Documentation Contents +********************** + +.. toctree:: + :maxdepth: 4 + + usage + cli-reference + api-reference + CONTRIBUTING + LICENSE + + +********** +References +********** + +Tools +===== + +- `Cookiecutter `_ +- `PyInvoke `_ +- `pytest `_ +- `tox `_ +- `Pylint `_ +- `twine `_ +- `bpython `_ +- `yolk3k `_ + +Packages +======== + +- `Rituals `_ +- `Click `_ + + +Indices and Tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..816c1bc2 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,7 @@ +# +# "Read The Docs" requirements +# + + +sphinx-click +-r ../requirements.txt diff --git a/docs/usage.rst b/docs/usage.rst new file mode 100644 index 00000000..10bbe0fb --- /dev/null +++ b/docs/usage.rst @@ -0,0 +1,100 @@ +.. documentation: usage + + Copyright © 2019 Camila Maia + + ## LICENSE_SHORT ## + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +############################################################################# +Using `ScanAPI` +############################################################################# + +******** +Overview +******** + +**TODO** + +This project is based on the :gh:`Springerle/py-generic-project` cookiecutter. +Distribution packages are versioned according to :pep:`440`. + + +***************** +Command Line Tool +***************** + +The :command:`scanapi` tool uses a sub-command scheme, like known from `git`. + +Add :ref:`global options ` directly after the :command:`scanapi` command name, and other options +after their sub-command. To get detailed help for a specific sub-command, +use a local :option:`--help` option as in ``scanapi help --help``. + +.. warning:: + + .. rubric:: Status: ALPHA + + Not all of these options and commands are implemented yet! + + +.. _cmd-help: + +The `help` Command +================== + +Call ``scanapi help`` to check if your installation basically works. +The output shows version information and install locations. +It also lists the paths where configuration files are read from, +see :option:`--config` and :envvar:`SCANAPI_CONFIG` on how to provide a custom path. + + + +.. _global-opts: + +Global Command Line Options +=========================== + +Global options must be used *before* any sub-command, e.g. ``scanapi -c :/dev/null help``. + +.. option:: --version + + Show the version and install location, then exit. + +.. option:: --license + + Show the license text and exit. + +.. option:: -q, --quiet + + Be quiet and only show error messages. + +.. option:: -v, --verbose + + Create extra verbose output. + +.. option:: -c, --config FILE + + Load given configuration file(s). This overwrites the default lookup path for configuration files. + + You can provide this option multiple times, and also provide PATH-like lists separated by a colon. + An empty path component ``-c ''`` restores the default lookup path, at the place you used it. + + See also :envvar:`SCANAPI_CONFIG` on how to use the environment for this. + +.. option:: -h, --help + + Show a usage message and exit. + + +.. _env-vars: + +Environment Variables +===================== + +Certain environment variables can be used to customise the behaviour +of the application. + +.. envvar:: SCANAPI_CONFIG + + A PATH-like list of *additional* config files, read after the default ones. + + See also :option:`--config` for ad-hoc changes on the command line. diff --git a/documentation/Makefile b/documentation/Makefile deleted file mode 100644 index d0c3cbf1..00000000 --- a/documentation/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = source -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) diff --git a/documentation/make.bat b/documentation/make.bat deleted file mode 100644 index 6247f7e2..00000000 --- a/documentation/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=source -set BUILDDIR=build - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/documentation/source/conf.py b/documentation/source/conf.py deleted file mode 100644 index b3933472..00000000 --- a/documentation/source/conf.py +++ /dev/null @@ -1,52 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -# 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("../../scanapi")) - - -# -- Project information ----------------------------------------------------- - -project = "scanapi" -copyright = "2020, Camila Maia" -author = "Camila Maia" - - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = ["sphinx.ext.autodoc"] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ["_templates"] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = [] - - -# -- 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 = "sphinx_rtd_theme" - -# 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"] diff --git a/documentation/source/index.rst b/documentation/source/index.rst deleted file mode 100644 index 4e79d4ac..00000000 --- a/documentation/source/index.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. scanapi documentation master file, created by - sphinx-quickstart on Sat Jul 25 19:36:11 2020. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to scanapi's documentation! -=================================== - -Here is some intro of the Scan API - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - modules - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/documentation/source/tests.rst b/documentation/source/tests.rst deleted file mode 100644 index 00616d66..00000000 --- a/documentation/source/tests.rst +++ /dev/null @@ -1,30 +0,0 @@ -tests package -============= - -Subpackages ------------ - -.. toctree:: - :maxdepth: 4 - - tests.unit - -Submodules ----------- - -tests.conftest module ---------------------- - -.. automodule:: tests.conftest - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: tests - :members: - :undoc-members: - :show-inheritance: diff --git a/documentation/source/tests.unit.evaluators.rst b/documentation/source/tests.unit.evaluators.rst deleted file mode 100644 index 5e3ea18a..00000000 --- a/documentation/source/tests.unit.evaluators.rst +++ /dev/null @@ -1,38 +0,0 @@ -tests.unit.evaluators package -============================= - -Submodules ----------- - -tests.unit.evaluators.test\_code\_evaluator module --------------------------------------------------- - -.. automodule:: tests.unit.evaluators.test_code_evaluator - :members: - :undoc-members: - :show-inheritance: - -tests.unit.evaluators.test\_spec\_evaluator module --------------------------------------------------- - -.. automodule:: tests.unit.evaluators.test_spec_evaluator - :members: - :undoc-members: - :show-inheritance: - -tests.unit.evaluators.test\_string\_evaluator module ----------------------------------------------------- - -.. automodule:: tests.unit.evaluators.test_string_evaluator - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: tests.unit.evaluators - :members: - :undoc-members: - :show-inheritance: diff --git a/documentation/source/tests.unit.rst b/documentation/source/tests.unit.rst deleted file mode 100644 index e228b9a9..00000000 --- a/documentation/source/tests.unit.rst +++ /dev/null @@ -1,95 +0,0 @@ -tests.unit package -================== - -Subpackages ------------ - -.. toctree:: - :maxdepth: 4 - - tests.unit.evaluators - tests.unit.tree - -Submodules ----------- - -tests.unit.test\_config\_loader module --------------------------------------- - -.. automodule:: tests.unit.test_config_loader - :members: - :undoc-members: - :show-inheritance: - -tests.unit.test\_hide\_utils module ------------------------------------ - -.. automodule:: tests.unit.test_hide_utils - :members: - :undoc-members: - :show-inheritance: - -tests.unit.test\_main module ----------------------------- - -.. automodule:: tests.unit.test_main - :members: - :undoc-members: - :show-inheritance: - -tests.unit.test\_reporter module --------------------------------- - -.. automodule:: tests.unit.test_reporter - :members: - :undoc-members: - :show-inheritance: - -tests.unit.test\_scan module ----------------------------- - -.. automodule:: tests.unit.test_scan - :members: - :undoc-members: - :show-inheritance: - -tests.unit.test\_session module -------------------------------- - -.. automodule:: tests.unit.test_session - :members: - :undoc-members: - :show-inheritance: - -tests.unit.test\_settings module --------------------------------- - -.. automodule:: tests.unit.test_settings - :members: - :undoc-members: - :show-inheritance: - -tests.unit.test\_template\_render module ----------------------------------------- - -.. automodule:: tests.unit.test_template_render - :members: - :undoc-members: - :show-inheritance: - -tests.unit.test\_utils module ------------------------------ - -.. automodule:: tests.unit.test_utils - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: tests.unit - :members: - :undoc-members: - :show-inheritance: diff --git a/documentation/source/tests.unit.tree.rst b/documentation/source/tests.unit.tree.rst deleted file mode 100644 index 73f0b7b6..00000000 --- a/documentation/source/tests.unit.tree.rst +++ /dev/null @@ -1,38 +0,0 @@ -tests.unit.tree package -======================= - -Submodules ----------- - -tests.unit.tree.test\_endpoint\_node module -------------------------------------------- - -.. automodule:: tests.unit.tree.test_endpoint_node - :members: - :undoc-members: - :show-inheritance: - -tests.unit.tree.test\_request\_node module ------------------------------------------- - -.. automodule:: tests.unit.tree.test_request_node - :members: - :undoc-members: - :show-inheritance: - -tests.unit.tree.test\_testing\_node module ------------------------------------------- - -.. automodule:: tests.unit.tree.test_testing_node - :members: - :undoc-members: - :show-inheritance: - - -Module contents ---------------- - -.. automodule:: tests.unit.tree - :members: - :undoc-members: - :show-inheritance: diff --git a/pyproject.toml b/pyproject.toml index 60b5ae9e..11874c79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,6 +37,10 @@ isort = "^5.5.3" bandit = "^1.6.2" pytest-it = "^0.1.4" flake8 = "3.8.4" +invoke = "^1.6" +rituals = "^0.4.1" +sphinx-click = "^3.0.1" +recommonmark = "^0.7.1" [tool.isort] multi_line_output = 3 diff --git a/tasks.py b/tasks.py new file mode 100644 index 00000000..6990c6ea --- /dev/null +++ b/tasks.py @@ -0,0 +1,23 @@ +# pylint: disable=wildcard-import, unused-wildcard-import, invalid-name +""" Project automation for Invoke. +""" +# Copyright © 2019 Camila Maia +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +from rituals.easy import * # pylint: disable=redefined-builtin