1
0
Fork 0
mirror of https://github.com/correl/tornado-openapi3.git synced 2025-03-26 17:00:12 -09:00

Add contribution documentation to the README

This commit is contained in:
Correl Roush 2020-12-04 22:46:40 -05:00
parent 3704bfab49
commit 91f6c202d9

View file

@ -16,14 +16,11 @@ Provides integration between the `Tornado`_ web framework and `Openapi-core`_
library for validating request and response objects against an `OpenAPI 3`_
specification.
.. _Tornado: https://www.tornadoweb.org/
.. _Openapi-core: https://github.com/p1c2u/openapi-core
.. _OpenAPI 3: https://swagger.io/specification/
Usage
=====
Adding validation to request handlers
=====================================
-------------------------------------
.. code:: python
@ -60,7 +57,7 @@ Adding validation to request handlers
raise
Validating a response
=====================
---------------------
.. code:: python
@ -79,3 +76,73 @@ Validating a response
response = self.fetch("/status")
result = validator.validate(response)
result.raise_for_errors()
Contributing
============
Getting Started
---------------
This project uses `Poetry`_ to manage its dependencies. To set up a local
development environment, just run:
.. code:: sh
poetry install
Formatting Code
---------------
The `Black`_ tool is used by this project to format Python code. It is included
as a development dependency, and should be run on all committed code. To format
code prior to committing it and submitting a PR, run:
.. code:: sh
poetry run black .
Running Tests
-------------
`pytest`_ is the preferred test runner for this project. It is included as a
development dependency, and is configured to track code coverage, `Flake8`_
style compliance, and `Black`_ code formatting. Tests can be run in your
development environment by running:
.. code:: sh
poetry run pytest
Additionally, tests can be run using `tox`_, which will run the tests using
multiple versions of both Python and Tornado to ensure broad compatibility.
Configuring Hypothesis
^^^^^^^^^^^^^^^^^^^^^^
Many of the tests make use of `Hypothesis`_ to specify their expectations and
generate a large volume of randomized test input. Because of this, the tests may
take a long time to run on slower computers. Three profiles are defined for
Hypothesis to use which can be selected by setting the ``HYPOTHESIS_PROFILE``
environment variable to one of the following values:
``default``
Runs tests using the default Hypothesis settings (100 examples per test with a
default completion deadline)
``dev``
The fastest profile, meant for local development only. Uses only 10 examples
per test with no completion deadline.
``ci``
The slowest profile, used for automated testing. Uses 1000 examples per test,
with the default completion deadline.
.. _Black: https://github.com/psf/black
.. _Flake8: https://flake8.pycqa.org/
.. _Hypothesis: https://hypothesis.readthedocs.io/
.. _OpenAPI 3: https://swagger.io/specification/
.. _Openapi-core: https://github.com/p1c2u/openapi-core
.. _Poetry: https://python-poetry.org/
.. _Tornado: https://www.tornadoweb.org/
.. _pytest: https://pytest.org/
.. _tox: https://tox.readthedocs.io/